首页 > 解决方案 > 使用 TensorFlow Hub 模型重新创建 BERT extract_features.py 输出

问题描述

我通过克隆 BERT 存储库、下载“BERT-Base, Uncased”预训练模型并运行extract_features.py生成了一个我非常满意的特征向量,如下所示:

PYTHONPATH=. python extract_features.py --input_file=~/sandbox/input.txt --output_file=~/sandbox/bert_output.jsonl --vocab_file=$BERT_BASE_DIR/vocab.txt --bert_config_file=$BERT_BASE_DIR/bert_config.json --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt --layers=-2 --max_seq_length=128 --batch_size=8

注意--layers=-2arg,它指定我想要倒数第二层的特征。

我现在正在尝试使用这个 TensorFlow Hub 模型重现相同的功能,我相信它是相同的模型。我使用TF Hub GitHub 上建议的这个 hack来访问所需的层,因为只暴露了输出层。我得到的特征向量非常接近,但并不完全相同(各个浮点数彼此相差约 1%)。我已经确认我的输入标记在这两种情况下都是相同的。希望对 BERT 配置和内部有更多了解的人可以发现我忽略的一些明显的东西,或者提出一种继续调试的方法?我很茫然,因为界面非常不同。

标签: tensorflowtensorflow-hubbert-language-model

解决方案


推荐阅读