课时92 BERT模型训练方法
>>如何训练BERT
方法1:15%词汇被随机mask掉(涉及损失函数
方法2:预测两个句子是否应该连在一起
课时93 训练实例
阅读理解题:输入的是文章和问题,输出的是理解的答案位置。返回结果是答案(词汇)在文章中所在的位置
如何设计网络:需要额外设置两个辅助向量,分别记录答案的起始位置和终止位置,用辅助向量和文章中每个词做内积(表示相关性),通过softmax确定最大值
课时94 BERT开源项目简介
BERT下bert-master文件夹
1. 为文件设置参数
--num_train_epochs=3.0小项目可以更小一点
2. 运行文件测试基础环境
运行run_classifier.py文件出现问题“AttributeError: module 'tensorflow._api.v2.train' has no attribute 'Optimizer'”
解决方法:额外安装更老的tensorflow版本
命令:python -m pip install tensorflow-gpu==1.15.0
3. 读+修改基础代码
1)#代码296行
class MrpcProcessor(DataProcessor):
"""Processor for the MRPC data set (GLUE version)."""
……
2)如果数据集不是MRPC则需要进行个人改动,例如,test a,b
#代码325行
text_a = tokenization.convert_to_unicode(line[3])
text_b = tokenization.convert_to_unicode(line[4])
3)调整迭代次数,train_batch_steps是迭代次数,get_train_examples读数据
#代码842
if FLAGS.do_train:
train_examples = processor.get_train_examples(FLAGS.data_dir)
num_train_steps =int(
len(train_examples) / FLAGS.train_batch_size * FLAGS.num_train_epochs)
num_warmup_steps =int(num_train_steps * FLAGS.warmup_proportion)
4. 运行问题
TensorFlow报错:AttributeError: module 'tensorflow_core._api.v2.train' has no attribute 'Optimizer‘
https://blog.csdn.net/weixin_42720673/article/details/103066349
TensorFlow版本更新到2.0,Optimizer方法调用方式改变 。将tf.train.Optimizer,更改为tf.optimizers.Optimizer即可。
AttributeError: module 'tensorflow' has no attribute 'flags'
https://blog.csdn.net/qq_40212975/article/details/103718044
import tensorflow ad tf 改为 import tensorflow.compat.v1 as tf
module 'tensorflow' has no attribute 'gfile'
https://blog.csdn.net/weixin_41845265/article/details/108573026
tf.gfile 改成 tf.io.gfile
以上问题最后只是通过改变TensorFlow版本从2.4.0->2.0.0就可以了