BERT-NER-Pytorch运行记录

GitHub代码来源

运行代码

安装好后。
使用工作站中原先就弄好的pytorch1虚拟环境。
直接执行
run_ner_crf.py 后报错。

UserWarning: h5py is running against HDF5 1.10.6 when it was built against 1.10.4, this may cause pr

然后用

conda install hdf5=1.10.4

安装后重新。
发现他的预训练模型那里是空的。于是去下载。
BERT-NER-Pytorch运行记录_第1张图片
根据描述应该用google的bert base。但是以防万一都下了。
运行报错。缺少参数。

run_ner_crf.py: error: the following arguments are required: --task_name, --data_dir, --model_type, --model_name_or_path, --output_dir

找到main函数里传参的地方

def main():
    args = get_argparse().parse_args()

按住ctrl点击函数就可以进去

def get_argparse():
    parser = argparse.ArgumentParser()
    # Required parameters
    parser.add_argument("--task_name", default=None, type=str, required=True,
                        help="The name of the task to train selected in the list: ")
                        # 没有list
    parser.add_argument("--data_dir", default=None, type=str, required=True,
                        help="The input data dir. Should contain the training files for the CoNLL-2003 NER task.", )
                        # 那就指定里面的cner的路径
    parser.add_argument("--model_type", default=None, type=str, required=True,
                        help="Model type selected in the list: ")
                        # 这个真不知道是啥。是类似BERT+Softmax这样写进去嘛?
    parser.add_argument("--model_name_or_path", default=None, type=str, required=True,
                        help="Path to pre-trained model or shortcut name selected in the list: " )
                        # 这个应该是预训练语言模型的路径
    parser.add_argument("--output_dir", default=None, type=str, required=True,
                        help="The output directory where the model predictions and checkpoints will be written.", )
                        # 指定一个output路径就可以

解决办法1:上面这些参数要在哪个位置写进去
和上面链接一样的法子。就是指定参数和路径。

逐一确定每个参数的内容!

  1. task name
    BERT-NER-Pytorch运行记录_第2张图片
    –task_name"cner"

  2. data_dir
    –data_dir"./datasets/cner"
    因为我运行的脚本文件,和datasets是平级的,所以用./ 希望没问题吧。
    BERT-NER-Pytorch运行记录_第3张图片

  3. model_type
    BERT-NER-Pytorch运行记录_第4张图片
    BERT-NER-Pytorch运行记录_第5张图片
    代码里只看到了 distilbert bert xlnet 这三个modeltype的值。那么我写bert好了。
    –model_type"bert"

  4. model_name_or_path
    Path to pre-trained model
    BERT-NER-Pytorch运行记录_第6张图片
    –model_name_or_path"./prev_trained_model/bert-base-chinese"

  5. output_dir
    –output_dir"./outputs/cner_output/bert"

–task_name"cner" --data_dir"./datasets/cner" --model_type"bert" --model_name_or_path"./prev_trained_model/bert-base-chinese" --output_dir"./outputs/cner_output/bert"

这样设置以后。跑了还是一样的错误。然后根据链接,他好像是parser就是写在main.py,所以在main.py设置参数的,那我的不是在run_ner_crf.py,所以不是在这里设置参数。
函数在tools/finetuning_argparse.py,我更改脚本路径为这个。设置一样的参数。还是,一模一样的报错。

–task_name “cner” --data_dir “./datasets/cner” --model_type “bert” --model_name_or_path “./prev_trained_model/bert-base-chinese” --output_dir “./outputs/cner_output/bert”
给每个参数和双引号中间加了空格
还是报错。

我都找到了参数。写进去。为甚么还是这样。。。

你可能感兴趣的:(pytorch,bert,深度学习)