按照本教程,我正在微调gpt-2模型:
与其关联的GitHub存储库:
https://github.com/nshepperd/gpt-2
我已经能够复制这些例子,我的问题是我没有找到一个参数来设置迭代次数。基本上,培训脚本每100个迭代显示一个示例,每1000个迭代保存一个模型版本。但是我没有找到一个参数来训练它,比如说,5000次迭代,然后关闭它。
用于培训的脚本如下:https://github.com/nshepperd/gpt-2/blob/finetuning/train.py
编辑:
正如cronoik所建议的那样,我正在尝试将while替换为for循环。
我要添加这些更改:
但我发现了一个错误:
File "train.py", line 259, in main
for iter_count in range(training_steps):
NameError: name 'training_steps' is not defined发布于 2019-09-07 02:11:11
您所要做的就是将while True循环修改为for循环:
try:
#replaced
#while True:
for i in range(5000):
if counter % args.save_every == 0:
save()
if counter % args.sample_every == 0:
generate_samples()
if args.val_every > 0 and (counter % args.val_every == 0 or counter == 1):
validation()
if args.accumulate_gradients > 1:
sess.run(opt_reset)
for _ in range(args.accumulate_gradients):
sess.run(
opt_compute, feed_dict={context: sample_batch()})
(v_loss, v_summary) = sess.run((opt_apply, summaries))
else:
(_, v_loss, v_summary) = sess.run(
(opt_apply, loss, summaries),
feed_dict={context: sample_batch()})
summary_log.add_summary(v_summary, counter)
avg_loss = (avg_loss[0] * 0.99 + v_loss,
avg_loss[1] * 0.99 + 1.0)
print(
'[{counter} | {time:2.2f}] loss={loss:2.2f} avg={avg:2.2f}'
.format(
counter=counter,
time=time.time() - start_time,
loss=v_loss,
avg=avg_loss[0] / avg_loss[1]))
counter += 1
except KeyboardInterrupt:
print('interrupted')
save()https://stackoverflow.com/questions/57782409
复制相似问题