从默认模型 gpt-2-simple python 上的输入生成文本



我一辈子都不知道如何从前缀中的默认模型生成文本:

我已经下载了模型,这是我的代码:

import gpt_2_simple as gpt2
model_name = "124M"
sess = gpt2.start_tf_sess()
gpt2.generate(sess, model_name=model_name)
gpt2.generate(sess, model_name=model_name, prefix="<|My name is |>")

但是当我运行它时,出现以下错误:

tensorflow.python.framework.errors_impl.FailedPreconditionError: 2 root error(s) found. (0) Failed precondition: Attempting to use uninitialized value model/h3/mlp/c_proj/w [[{{node model/h3/mlp/c_proj/w/read}}]] [[strided_slice/_33]] (1) Failed precondition: Attempting to use uninitialized value model/h3/mlp/c_proj/w [[{{node model/h3/mlp/c_proj/w/read}}]]

知道我做错了什么吗?

您正在尝试在不先加载参数的情况下生成。

似乎下载的模型用于训练("微调"(,但它们不会加载以进行生成。

对于生成,库尝试运行以前保存的 Tensorflow 模型(TF 术语中的"检查点"(。

微调

您可以通过使用自己的数据集(或从研究发布的数据集中(训练模型几个时期来生成检查点。

否则,gpt-2-simple会让它变得容易。获取一个包含一些文本的文本文件并对其进行训练:

gpt_2_simple --sample_every 50 finetune yourtext.txt

让它运行几个纪元,看看结果样本。每 100 个纪元将保存一个检查点。一旦你满意,点击CTRL+C,它将保存最后一个检查点。

然后,您可以使用以下内容生成文本:

gpt_2_simple generate --prefix "Once upon a time"  --nsamples 5

gpt_2_simple工具接受-h参数寻求帮助。看看其他选项。使用代码库类似于此工具工作流。

无需微调即可生成

作者在此 GitHub 问题中解释了完全跳过微调的过程。只需将模型复制到检查点目录(您需要先下载模型,请查看该链接(:

mkdir -p checkpoint/
cp -r models/345M checkpoint/run1

相关内容

  • 没有找到相关文章

最新更新