训练,设置json配置文件路径,和一个空文件夹路径作为输出路径,如果加了-f,则可以不为空。如果之前的训练从某一步停了,加-r可以恢复。用自己的模型时,加–include-package 后面写自己的路径。
allennlp train ./config_path -s ./save_dir
#./config_path为配置文件路径,./save_dir是输出文件夹路径
-h 查看帮助
-r, --recover recover training from the state in serialization_dir
-f, --force overwrite the output directory if it exists
-o OVERRIDES, --overrides OVERRIDES
a JSON structure used to override the experiment
configuration
--file-friendly-logging
outputs tqdm status on separate lines and slows tqdm
refresh rate
--include-package INCLUDE_PACKAGE
additional packages to include
——————————————————————————————————————
创建词典,保存到文件。用同一个数据集进行多次实验,可以直接用这个词典文件。在配置文件中(单独一项)加 “vocabulary”:{“directory_path`”:"./vocab_path"}
allennlp make-vocab ./save_dir
-h 查看帮助
-s, -o, --include-package 与train一致
——————————————————————————————————————
查看tensorboardX可视化显示:
tensorboard --logdir=./log
然后打开网页 http://localhost:6006
——————————————————————————————————————
allennlp在网页中设置配置json:(ubuntu才能用)
allennlp configure
allennlp configure --port 8123
——————————————————————————————————————
查看GPU显存占用情况:
watch -n 1 nvidia-smi
——————————————————————————————————————
建立词典并保存到文件。
显示输出模型中哪些参数可变(Tunable),哪些参数不可变(Frozen)。(后续可以加载预训练模型,冻结一部分参数)
allennlp dry-run ./config.jsonnet -s ./dry_run
——————————————————————————————————————
为模型找一个合理的初始学习率,保存一个“学习率-loss”曲线到图片,
allennlp find-lr ./config.jsonnet -s ./find_lr --start-lr 0.00001 --end-lr 0.5 --num-batches 30
1080ti,bidaf,batch=30(batch_size要大于10),运行不到三分钟。
如何找到最佳学习率?
首先我们设置一个非常小的初始学习率,比如1e-5,然后在每个batch之后都更新网络,同时增加学习率,统计每个batch计算出的loss。最后我们可以描绘出学习的变化曲线和loss的变化曲线,从中就能够发现最好的学习率(最好的学习速率搭配着损失函数上最陡的下降)
——————————————————————————————————————
使用Flask部署
python -m allennlp.service.server_simple
--archive-path F:/dl-data/save/QAnet/origin/model.tar.gz
--predictor machine-comprehension
--field-name question
--field-name passage