怎样快速学好网站建设,现在建设网站挣钱吗,wordpress notes,易企秀h5以前不甘心#xff0c;总想争个对错#xff0c;现在不会了 人心各有所愿#xff0c;没有道理可讲 —— 25.1.18 计算Bert模型结构中的参数数量
BertModel.from_pretrained()#xff1a;用于从预训练模型目录或 Hugging Face 模型库加载 BERT 模型的权重及配置。
参数名称… 以前不甘心总想争个对错现在不会了 人心各有所愿没有道理可讲 —— 25.1.18 计算Bert模型结构中的参数数量
BertModel.from_pretrained()用于从预训练模型目录或 Hugging Face 模型库加载 BERT 模型的权重及配置。
参数名称类型是否必填说明pretrained_model_name_or_path字符串是模型名称如 bert-base-uncased或本地路径。configBertConfig对象否自定义配置类用于覆盖默认配置。state_dict字典否预训练权重字典用于部分加载模型。cache_dir字符串否缓存目录用于存储下载的模型文件。from_tf布尔值否是否从 TensorFlow 模型加载权重默认为 False。ignore_mismatched_sizes布尔值否是否忽略权重大小不匹配的错误默认为 False。local_files_only布尔值否是否仅从本地文件加载模型默认为 False。
return_dict参数
当 return_dict 设置为 True 时forward() 方法返回一个 BaseModelOutput 对象该对象包含了模型的各种输出如最后一层的隐藏状态、[CLS] 标记的输出等。当 return_dict 设置为 False 时forward() 方法返回一个元组包含与 BaseModelOutput 对象相同的元素但不包含对象结构。
numel()计算张量Tensor中的元素总数
参数名称类型是否必填说明tensortorch.Tensor是输入的PyTorch张量。
parameters()返回模型中所有可训练参数的迭代器。
参数名称类型是否必填说明recurse布尔值否是否递归获取子模块的参数默认为True。
import torch
import math
import torch.nn as nn
import numpy as np
from transformers import BertModelmodel BertModel.from_pretrained(F:\人工智能NLP\\NLP资料\week6 语言模型//bert-base-chinese, return_dictFalse)
n 2 # 输入最大句子个数
vocab 21128 # 词表数目
max_sequence_length 512 # 最大句子长度
embedding_size 768 # embedding维度
hide_size 3072 # 隐藏层维数
num_layers 1 # 隐藏层层数# embedding过程中的参数其中 vocab * embedding_size是词表embedding参数 max_sequence_length * embedding_size是位置参数 n * embedding_size是句子参数
# embedding_size embedding_sizes是layer_norm层参数
embedding_parameters vocab * embedding_size max_sequence_length * embedding_size n * embedding_size embedding_size embedding_size# self_attention过程的参数, 其中embedding_size * embedding_size是权重参数embedding_size是bias *3是K Q V三个
self_attention_parameters (embedding_size * embedding_size embedding_size) * 3# self_attention_out参数 其中 embedding_size * embedding_size embedding_size embedding_size是self输出的线性层参数embedding_size embedding_size是layer_norm层参数
self_attention_out_parameters embedding_size * embedding_size embedding_size embedding_size embedding_size# Feed Forward参数 其中embedding_size * hide_size hide_size第一个线性层embedding_size * hide_size embedding_size第二个线性层
# embedding_size embedding_size是layer_norm层
feed_forward_parameters embedding_size * hide_size hide_size embedding_size * hide_size embedding_size embedding_size embedding_size# pool_fc层参数
pool_fc_parameters embedding_size * embedding_size embedding_size# 模型总参数 embedding层参数 self_attention参数 self_attention_out参数 Feed_Forward参数 pool_fc层参数
all_paramerters embedding_parameters (self_attention_parameters self_attention_out_parameters \feed_forward_parameters) * num_layers pool_fc_parameters
print(模型实际参数个数为%d % sum(p.numel() for p in model.parameters()))
print(diy计算参数个数为%d % all_paramerters)