TensorFlow BERT fine-tune 训练中断解决办法 或 使用开源模型继续fine-tune 参数配置

问题

在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'\

猜你喜欢

转载自blog.csdn.net/weixin_48185819/article/details/125726420