赞
踩
1、导入相关的模块
import tensorflow as tf ##导入tensorflow模块
import numpy as np
import os,argparse,time,random
from model import BiLSTM_CRF ##从model的py文件中导入BiLSTM_CRF类
from utils import str2bool, get_logger, get_entity ##从utils文件中导入相关的函数、变量
from data import read_corpus, read_dictionary, tag2label, random_embedding
##从data的py文件中导入相关的函数以及变量
2、相关参数的设置
##控制GPU资源使用率
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
config.gpu_options.per_process_gpu_memory_fraction = 0.2
##相关参数的设置
#这个接口是获取命令行里面输入的命令参数,并返回
##default表示的是若用户没有输入指定的值,则程序执行时选择默认的值,此时default即变量所选用的默认的值
parser = argparse.ArgumentParser(description=‘BiLSTM-CRF’) ###创建一个命令解析器的句柄
##设置训练数据集的地址
parser.add_argument(’–train_data’,type=str,default=‘data_path’,help=‘train data source’)
##设置测试集的地址
parser.add_argument(’–test_data’,type=str,default=‘data_path’,help=‘test data source’)
##设置每一次循环的batch_size的大小为64,即一次喂如神经网络的数据的大小
parser.add_argument(’–batch_size’,type=int,default=64,help=‘sample of each minibatch’)
##设置迭代的轮数
parser.add_argument(’–epoch’,type=int,default=5,help=‘epoch of training’)
##设置隐藏层的神经元的个数,默认的值为300
parser.add_argument(’–hidden_dim’,type=int,default=300,help=‘dim of hidden state’)
##选择优化器
parser.add_argument(’–optimizer’,type=str,default=‘Adam’,help=‘Adam/Adadelta/Adagrad/RMSProp/Momentum/SGD’)
##此处默认CRF的值为True,这块不是特别明白,希望看明白的同仁们能够解答
parser.add_argument(’–CRF’,type=str2bool,default=True,help=‘use CRF at the top layer. if False,use Softmax’)
##学习率的设置,也可以理解成步长的设置
parser.add_argument(’–lr’, type=float, default=0.001, help=‘learning rate’)
##梯度裁剪
parser.add_argument(’–clip’, type=float, default=5.0, help=‘gradient clipping’) ##梯度裁剪
##dropout的设置,即随机选择指定比例的神经元进行运作
parser.add_argument(’–dropout’, type=float, default=0.5, help=‘dropout keep_prob’)
##update_embedding的设置
parser.add_argument(’–update_embedding’, type=str2bool, default=True, help=‘update embedding during training’)
##pretrain_embedding的设置
parser.add_argument(’–pretrain_embedding’, type=str, default=‘random’, help=‘use pretrained char embedding or init it randomly’)
##词向量的维度的设置
parser.add_argument(’–embedding_dim’, type=int, default=300, help=‘random init char embedding_dim’)
##shuffle的设置
parser.add_argument(’–shuffle’, type=str2bool, default=True, help=‘shuffle training data before each epoch’)
##是选择训练还是测试的参数的设置
parser.add_argument(’–mode’, type=str, default=‘train’, help=‘train/test/demo’)
##???
parser.add_argument(’–demo_model’, type=str, default=‘1521112368’, help=‘model for test and demo’)
args = parser.parse_args()
“”"##命令解析器的解释(引用其他的网站)
在python中,命令行解析的很好用,
首先导入命令行解析模块
import argparse
import sys
然后创建对象
parse=argparse.ArgumentParser()
然后增加命令行
parse.add_argument("–learning_rate",type=float,default=0.01,help=“initial learining rate”)
parse.add_argument("–max_steps",type=int,default=2000,help=“max”)
parse.add_argument("–hidden1",type=int,default=100,help=“hidden1”)
对于函数add_argumen()第一个是选项,第二个是数据类型,第三个默认值,第四个是help命令时的说明
然后用arg=parse.parse_args(sys.argv[1:])
其中参数sys.argv[1:]是命令行语句中从第一个到最后。如在ubuntu下输入命令行python gg.py --learning_rate 20 --max_steps 10
则sys.argv[1:0]=–learning_rate 20 --max_steps 10
“”"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。