python - 如何在 BERT 预训练模型中访问中间层参数?
问题描述
import torch
import transformers
tokenizer = transformers.AlbertTokenizer.from_pretrained('albert-base-v2', do_lower_case=True)
transformer = transformers.AlbertModel.from_pretrained("albert-base-v2")
我试过了:
transformer.num_parameters
但是,它为所有层提供了参数:
<bound method ModuleUtilsMixin.num_parameters of AlbertModel( (embeddings): AlbertEmbeddings( (word_embeddings): Embedding(30000, 128, padding_idx=0) (position_embeddings): Embedding(512, 128) (token_type_embeddings): Embedding(2, 128) (LayerNorm): LayerNorm((128,), eps=1e-12, elementwise_affine=True) (dropout): Dropout(p=0, inplace=False) ) (encoder): AlbertTransformer( (embedding_hidden_mapping_in): Linear(in_features=128, out_features=768, bias=True) (albert_layer_groups): ModuleList( (0): AlbertLayerGroup( (albert_layers): ModuleList( (0): AlbertLayer( (full_layer_layer_norm): LayerNorm((768,), eps=1e-12, elementwise_affine=True) (attention): AlbertAttention( (query): Linear(in_features=768, out_features=768, bias=True) (key): Linear(in_features=768, out_features=768, bias=True) (value): Linear(in_features=768, out_features=768, bias=True) (attention_dropout): Dropout(p=0, inplace=False) (output_dropout): Dropout(p=0, inplace=False) (dense): Linear(in_features=768, out_features=768, bias=True) (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True) ) (ffn): Linear(in_features=768, out_features=3072, bias=True) (ffn_output): Linear(in_features=3072, out_features=768, bias=True) (dropout): Dropout(p=0, inplace=False) ) ) ) ) ) (pooler): Linear(in_features=768, out_features=768, bias=True) (pooler_activation): Tanh() )>
我需要访问 out_features = 768 最后一个线性函数的输入
((池化器):线性(in_features=768,out_features=768,bias=True))
解决方案
推荐阅读
- java - 如何为不同的机器拥有不同的属性文件?
- java - 使用 Apache Kafka 进行流连接示例?
- powershell - 如何获取从powershell踢出的exe文件的$lastexitcode
- java - 我的 Java Servlet (war) 在 Tomcat 8.5 上不起作用
- python - pydantic 模块仅在 init 中检查变量
- php - 使用 php 过滤器翻译 Wordpress(WooCommerce 插件)
- regex - invert reqular expression for excluding folders/files (used for Electron Packager)
- php - Woocommerce 如何创建自己的新订单电子邮件模板?
- r - 考虑使用 r 的午夜时间的时差计算
- angularjs - css网格的砌体布局