在跟随大牛 Macanv《基于BERT预训练的中文命名实体识别TensorFlow实现》的帖子一步步实现时,发现了一个非常困扰的问题,就是执行以下语句后,屏幕上什么提示也没有,比如loss是多少,进行到哪一步了step等等,百度一顿搜索后,并未直接找到合适答案,很是困扰。
附上大牛的帖子,精华之作:
bert-base-ner-train -data_dir ./data -output_dir output -init_checkpoint ../bert/chinese_L-12_H-768_A-12/bert_model.ckpt -bert_config_file ../bert/chinese_L-12_H-768_A-12/bert_config.json -vocab_file ../bert/chinese_L-12_H-768_A-12/vocab.txt -batch_size 64 -num_train_epochs 6
会出现类似这样的界面,一直到训练结束,才给出一个统计结果,完全黑盒,啥也看不到:
主要步骤分为两步:
1、修改bert_lstm_ner.py文件
在文件开始处,增加:tf.logging.set_verbosity(tf.logging.INFO),更改日志输出级别
文件目录:/home/你自己的用户名/anaconda3/envs/py36/lib/python3.6/site-packages/bert_base/train/bert_lstm_ner.py
对文件目录进行说明:可以找到对应的虚拟环境目录下,执行find -name bert_lstm_ner.py,这一步很关键,估计对新手还是比较难的,可以看出该文件是在bert-base目录下的
2、在修改上述目录下的 bert_lstm_ner.py文件,417行的位置(如果你没改动过)
将老内容:
logging_hook = tf.train.LoggingTensorHook(
hook_dict, every_n_iter=args.save_summary_steps)
改为下面的新内容:
logging_hook = tf.train.LoggingTensorHook(hook_dict, every_n_iter=5)
every_n_iter这个可以根据自己意愿调整,表示多少步输出一个结果
在shell中快速翻页用,以下命令,可快速找到对应的行
向下翻页快捷键(下一页):Ctrl + f
向上翻页快捷键(上一页):Ctrl + b
执行:wq ,保存退出。
然后再执行训练语句,会出现想看到的各种结果了,熟悉的界面是不是又回来了。
好了,按照以上步骤可以自定义你想要的输出了。