tensorflow - 使用 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=-2
arg,它指定我想要倒数第二层的特征。
我现在正在尝试使用这个 TensorFlow Hub 模型重现相同的功能,我相信它是相同的模型。我使用TF Hub GitHub 上建议的这个 hack来访问所需的层,因为只暴露了输出层。我得到的特征向量非常接近,但并不完全相同(各个浮点数彼此相差约 1%)。我已经确认我的输入标记在这两种情况下都是相同的。希望对 BERT 配置和内部有更多了解的人可以发现我忽略的一些明显的东西,或者提出一种继续调试的方法?我很茫然,因为界面非常不同。
解决方案
推荐阅读
- qt - 如何为 QCheckBox 制作粗体字体
- python - 为什么我的绘图中的错误限制没有显示在 matplotlib 中?
- c# - 如何在 IAppBuilder 上正确实现 Use 扩展方法
- python - Semeval 推特数据下载不起作用
- r - 如何创建一个 ts 对象 -ts() - 数据在工作日提供,而不是从月初开始?
- python - 使用列表理解修改列表
- android - 当有唯一键 Kotlin 时如何从 Firebase 检索孩子
- c - 卡恩算法的并行版本
- ssl - HTTPS连接被拒绝,使用ingress-nginx
- python - 我在创建 HTML 文件的 Python 代码中哪里出错了?我是否朝着正确的方向前进?