问题
在bert fine-tune中因为服务器等原因中断
通过tensorboard 查看 发现曲线只下降到一部分就停止了
需要在此基础上继续训练
方法
在bert训练时会生成文件,这三个为一套
需要将第一个文件的后缀删除,然后在训练时指定为初始模型就可以了
model.ckpt-2000.data-00000-of-00001
model.ckpt-2000.index
model.ckpt-2000.meta
model.ckpt-2000.data-00000-of-00001
改为
model.ckpt-2000
在训练时使用参数
export DATA_DIR='/test/data'
export BERT_BASE_DIR='/test/chinese_L-12_H-768_A-12' #注意这行
python run_classifier.py \
--task_name=classify\
--do_train=true \
--do_eval=true \
--data_dir=$DATA_DIR/ \
--vocab_file=$BERT_BASE_DIR/vocab.txt \
--bert_config_file=$BERT_BASE_DIR/bert_config.json \
--init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \ #注意这行
--max_seq_length=400 \
--train_batch_size=16 \
--learning_rate=2e-5 \
--num_train_epochs=30 \
--output_dir='/test/data/model'\
上面这一行是加载的bert的ckpt模型路径
下面这一行是bert模型ckpt的位置
我们只需要将这个换成自己训练中断的路径和模型就可以了
路径可以分开写 也可以写一行
export DATA_DIR='/test/data'
export BERT_BASE_DIR='/test/data/model'
python run_classifier.py \
--task_name=multext \
--do_train=true \
--do_eval=true \
--data_dir=$DATA_DIR/ \
--vocab_file=$BERT_BASE_DIR/vocab.txt \
--bert_config_file=$BERT_BASE_DIR/bert_config.json \
--init_checkpoint='model.ckpt-13290' \
--init_checkpoint='/test/data/model/model.ckpt-13290' \ #也可以写在一行
--max_seq_length=400 \
--train_batch_size=16 \
--learning_rate=6e-5 \
--num_train_epochs=50 \
--output_dir='/data/tony/work_tmp/tmp'\