Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python GPT-2从检查站继续训练_Python_Tensorflow_Nlp_Google Colaboratory_Gpt 2 - Fatal编程技术网

Python GPT-2从检查站继续训练

Python GPT-2从检查站继续训练,python,tensorflow,nlp,google-colaboratory,gpt-2,Python,Tensorflow,Nlp,Google Colaboratory,Gpt 2,我正在尝试使用GPT-2-simple的colab设置从保存的检查点继续培训,网址为: 但我就是不能让它工作。从我的googledrive加载保存的检查点工作正常,我可以使用它生成文本,但我无法从该检查点继续训练。在gpt2.finetune()中,我正在输入restore.from='latest'“和overwrite=True,我一直试图使用相同的运行名称和不同的运行名称,并使用overwrite=True,而不是。正如建议的那样,我还尝试在这段时间内重新启动运行时,但没有任何帮助,我不

我正在尝试使用GPT-2-simple的colab设置从保存的检查点继续培训,网址为:

但我就是不能让它工作。从我的googledrive加载保存的检查点工作正常,我可以使用它生成文本,但我无法从该检查点继续训练。在
gpt2.finetune()
中,我正在输入
restore.from='latest'“
overwrite=True
,我一直试图使用相同的运行名称和不同的运行名称,并使用
overwrite=True
,而不是。正如建议的那样,我还尝试在这段时间内重新启动运行时,但没有任何帮助,我不断遇到以下错误:

"ValueError: Variable model/wpe already exists, disallowed. Did you mean to set reuse=True 
or reuse=tf.AUTO_REUSE in VarScope?"
我认为我需要在继续训练之前运行
gpt2.load_gpt2(sess,run_name='myRun')
,但每当我首先运行此命令时,
gtp2.finetune()
就会抛出此错误

您不需要(也不能)在微调之前运行
load_gpt2()
。您只需将
run\u name
指定给
finetune()
。我同意这是令人困惑的地狱;我也有同样的问题

sess = gpt2.start_tf_sess()

gpt2.finetune(sess,
    file_name,
    model_name=model_name,
    checkpoint_dir=checkpoint_dir,
    run_name=run_name,
    steps=25,
)
这将自动从您的
检查点/跑步名称
文件夹中获取最新的检查点,加载其权重,并在结束时继续训练。您可以通过检查历元编号来确认这一点-它不再从0开始。例如,如果您之前已经训练了25个历代,那么它将在26开始:

Training...

[26 | 7.48] loss=0.49 avg=0.49
还要注意,要多次运行FineTunning(或加载另一个模型),通常必须重新启动python运行时。您可以在每个finetine命令之前运行此命令:

tf.reset_default_graph()

我尝试了以下方法,效果很好:

tf.reset_default_graph()
sess = gpt2.start_tf_sess()
gpt2.finetune(sess,
          steps=n,
          dataset=file_name,
          model_name='model', 
          print_every=z,
          run_name= 'run_name',
          restore_from='latest',
          sample_every=x,
          save_every=y
          )

您必须指定与要恢复培训的型号相同的“run\u name”,hp
restore\u from='latest'

对此表示同意,但我的培训是从零开始的,我只是将运行时版本更改为v3以进行微调,而v2已经存在。你确定这是它运行的标准方式吗?如果它对偶然发现它的任何人都有用-jameslol是正确的,但是-如果你想删除文件夹中已经存在的内容,则需要overwrite=True,并且-checkpoint_dir应该是保存所有检查点的目录(通常为“checkpoint”),不是要从中加载的特定检查点的目录。它将从run_name推断出正确的检查点。所以应该看起来像:gpt2.finetune(sess,file_name,model_name='124M',checkpoint_dir='checkpoint',run_name=run_name,steps=25,overwrite=True)