(也张贴在 https:/github.comdmis-labbiobertissues98。)
嗨,有谁知道如何使用huggingface transformers(2.4.1版)加载生物伯特作为keras层?我尝试了几种可能性,但都不成功。我只知道如何使用pytorch版本,但我对keras层版本感兴趣。下面是我的两个尝试(我把biobert文件保存在 "biobert_v1.1_pubmed "文件夹中)。
biobert_model = TFBertModel.from_pretrained('bert-base-uncased')
biobert_model.load_weights('biobert_v1.1_pubmed/model.ckpt-1000000')
错误信息。
AssertionError: Some objects had attributes which were not restored:
: ['tf_bert_model_4/bert/embeddings/word_embeddings/weight']
: ['tf_bert_model_4/bert/embeddings/position_embeddings/embeddings']
(and many more lines like above...)
biobert_model = TFBertModel.from_pretrained("biobert_v1.1_pubmed/model.ckpt-1000000", config='biobert_v1.1_pubmed/bert_config.json')
错误信息:
NotImplementedError: Weights may only be loaded based on topology into Models when loading TensorFlow-formatted weights (got by_name=True to load_weights).
感谢任何帮助!我对huggingface的变压器库的经验几乎为零。我还尝试加载以下两个模型,但似乎它们只支持pytorch版本。
可能有点晚了,但我已经找到了一个不那么优雅的解决这个问题的方法。变压器库中的tf bert模型可以用PyTorch保存文件加载。
第1步:将tf检查点转换为tf模型。 用以下命令将tf检查点转换为Pytorch保存文件(更多内容请点击这里。https:/github.comhuggingfacetransformersblobmasterdocssourceconverting_tensorflow_models.rst)。)
transformers-cli convert --model_type bert\
--tf_checkpoint=./path/to/checkpoint_file \
--config=./bert_config.json \
--pytorch_dump_output=./pytorch_model.bin
第2步:将以下文件合并到一个目录中。 确保将以下文件合并到一个目录中。
第3步,从刚才创建的目录中加载模型。 从我们刚刚创建的目录中加载模型
model = TFBertModel.from_pretrained('./pretrained_model_dir', from_pt=True)
其实还有一个参数 "from_tf",根据文档,这个参数应该适用于tf风格的检查点,但我无法让它工作。请看。https:/huggingface.cotransformersmain_classesmodel.html#transformers.PreTrainedModel.from_pretrained。