首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修改gpt-2代码以使用Tensorflow 2.0?

如何修改gpt-2代码以使用Tensorflow 2.0?
EN

Stack Overflow用户
提问于 2020-08-11 01:09:02
回答 3查看 3K关注 0票数 2

我正在尝试使用gpt-2来生成文本。即使在运行Tensorflow 2.0 代码升级脚本之后,也会出现兼容性错误。

我遵循的步骤:

  1. 克隆存储库
  2. 从现在开始,按照DEVELOPERS.md中的指示执行
  3. 升级脚本中的文件运行/src
  4. 终端运行:sudo docker build --tag gpt-2 -f Dockerfile.gpu .
  5. 构建完成后,运行:sudo docker run --runtime=nvidia -it gpt-2 bash
  6. 输入python3 src/generate_unconditional_samples.py | tee /tmp/samples
  7. 找到这个回溯: 跟踪(最近调用的最后一次调用):文件“src/generate_无条件_samples.py”,第9行,在导入模型、示例、编码器文件“/gpt-2/src/ model . No”中,第4行,在“from tensorboard.plugins.hparams.api HParam ImportError: tensorboard.plugins.hparams‘root@f8bdde043f91:/gpt-2# python3 src/generate_python3_samples.py”(最近一次调用)中:文件“src/generate_HParam_samples.py”,第9行,在导入模型中,编码器文件“/gpt-2/src/ module . No”,第4行,从tensorboard.plugins.hparams.api导入HParam ImportError:没有名为HParam的模块

似乎HParams已被废弃,Tensorflow 2.0中的新版本被称为HParam。然而,参数是不同的。在model.py中,参数实例化如下:

代码语言:javascript
运行
复制
def default_hparams():
return HParams(
    n_vocab=0,
    n_ctx=1024,
    n_embd=768,
    n_head=12,
    n_layer=12,
)

似乎没有任何1:1的翻译到Tensorflow 2.0。有人知道如何使gpt-2与Tensorflow 2.0一起工作吗?

我的GPU是一个NVIDIA 20 My。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2020-08-11 05:08:18

如果您想看看我的1.x叉,它在这里,编译:https://github.com/timschott/gpt-2

票数 1
EN

Stack Overflow用户

发布于 2020-10-27 02:39:54

我也遇到了同样的问题,但是通过在文件夹中创建一个单独的hparams.py文件并从这里填充内容:https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/hparam.py来解决这个问题。

然后在您的model.py中可以添加以下代码并交换如下内容:

代码语言:javascript
运行
复制
import tensorflow as tf
from tensorflow.contrib.training import HParams

在这方面:

代码语言:javascript
运行
复制
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
from hparams import HParams

然后,您将不得不在"tf“和模块之间添加"compat.v1”(如果是这样的话).例如,如果是"tf.Session“,则将其更改为"tf.compat.v1.Session”,或者如果是"tf.placeholder“,则将其更改为”tf.compat.v1.占位符“,等等。

我是在尝试降级到tensorflow-gpu 1.13和gpt-2之后才这么做的。在3.6Python版本中运行环境也是如此。

这是我的第一个答案,我不确定我是否正确地格式化了它,但我也会学到它。

票数 1
EN

Stack Overflow用户

发布于 2021-03-08 21:33:15

自动升级代码很少开箱即用。对于回购,您应该使用Tensorflow=1.15最大值。

如果你真的想要Tensorflow=2,你可以看看这个回购:https://github.com/akanyaani/gpt-2-tensorflow2.0

Note:您不会得到经过预先培训的模型(对于普通用户来说,这可能是gpt2最有趣的部分)。意味着他们的1554 M或778百万型号无法使用。

我不知道有什么方法可以自动升级训练过的模型,从1.15升级到2.3或者其他什么的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63350105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档