Python 设置gpt-2的迭代次数

Python 设置gpt-2的迭代次数,python,tensorflow,nlp,gpt-2,Python,Tensorflow,Nlp,Gpt 2,我正在按照本教程对gpt-2模型进行微调: 及其关联的GitHub存储库: 我已经能够复制这些示例,我的问题是我没有找到一个参数来设置迭代次数。 基本上,培训脚本每100次迭代显示一个示例,每1000次迭代保存一个模型版本。但是我没有找到一个参数来训练它,比如说5000次迭代,然后关闭它 培训脚本如下: 编辑: 正如cronoik所建议的,我正在尝试将while替换为for循环 我正在添加以下更改: 添加一个附加参数: parser.add_-argument'-training_-steps

我正在按照本教程对gpt-2模型进行微调:

及其关联的GitHub存储库:

我已经能够复制这些示例,我的问题是我没有找到一个参数来设置迭代次数。 基本上,培训脚本每100次迭代显示一个示例,每1000次迭代保存一个模型版本。但是我没有找到一个参数来训练它,比如说5000次迭代,然后关闭它

培训脚本如下:

编辑:

正如cronoik所建议的,我正在尝试将while替换为for循环

我正在添加以下更改:

添加一个附加参数:

parser.add_-argument'-training_-steps',metavar='steps',type=int,default=1000,help='表示模型应针对多少个培训步骤进行培训的数字'

更改循环:

 try:
     for iter_count in range(training_steps):
         if counter % args.save_every == 0:
             save()
使用新参数:

python3 train.py-培训步骤300

但我得到了一个错误:

  File "train.py", line 259, in main
    for iter_count in range(training_steps):
NameError: name 'training_steps' is not defined

您只需将while True循环修改为for循环:

尝试: 取代 尽管如此: 对于5000范围内的i: 如果计数器%args.save_every==0: 拯救 如果计数器%args.sample\u every==0: 生成样本 如果args.val_every>0且计数器%args.val_every==0或计数器==1: 验证 如果args.congregate_梯度>1: sess.runopt\U复位 对于u in rangeargs.accumulate_渐变: 赛斯·朗 opt_compute,feed_dict={context:sample_batch} v_损失,v_汇总=sess.runopt_应用,汇总 其他: _,v_损失,v_汇总=sess.run 选择适用、损失、总结、, feed_dict={context:sample_batch} 摘要日志。添加摘要v摘要,计数器 平均损耗=平均损耗[0]*0.99+v损耗, 平均损耗[1]*0.99+1.0 打印 “[{counter}{time:2.2f}]loss={loss:2.2f}avg={avg:2.2f}” 总体安排 计数器=计数器, time=time.time-开始时间, 损失=v_损失, 平均值=平均损失[0]/平均损失[1] 计数器+=1 除键盘中断外: 打印“中断” 拯救
我刚刚根据您的建议更新了问题,它应该是针对rangeargs.training_步骤中的iter_计数,而不是针对rangeargs.training_步骤中的iter_计数,因为您添加了另一个参数,它是args的成员。