我正在尝试使用gpt-2来生成文本。即使在运行Tensorflow 2.0 代码升级脚本之后,也会出现兼容性错误。
我遵循的步骤:
sudo docker build --tag gpt-2 -f Dockerfile.gpu .
sudo docker run --runtime=nvidia -it gpt-2 bash
python3 src/generate_unconditional_samples.py | tee /tmp/samples
似乎HParams已被废弃,Tensorflow 2.0中的新版本被称为HParam。然而,参数是不同的。在model.py
中,参数实例化如下:
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。
谢谢。
发布于 2020-08-11 05:08:18
如果您想看看我的1.x叉,它在这里,编译:https://github.com/timschott/gpt-2
发布于 2020-10-27 02:39:54
我也遇到了同样的问题,但是通过在文件夹中创建一个单独的hparams.py文件并从这里填充内容:https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/hparam.py来解决这个问题。
然后在您的model.py中可以添加以下代码并交换如下内容:
import tensorflow as tf
from tensorflow.contrib.training import HParams
在这方面:
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版本中运行环境也是如此。
这是我的第一个答案,我不确定我是否正确地格式化了它,但我也会学到它。
发布于 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或者其他什么的。
https://stackoverflow.com/questions/63350105
复制相似问题