我正在尝试使用gpt-2生成文本。即使在运行Tensorflow 2.0code upgrade script之后,也会出现兼容性错误
我遵循的步骤是:
克隆repo
从现在开始,按照DEVELOPERS.md中的说明进行操作
在/src中的文件上运行upgrade script
终端运行中: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
获取此回溯:
Traceback (most recent call last):
File "src/generate_unconditional_samples.py", line 9, in <module>
import model, sample, encoder
File "/gpt-2/src/model.py", line 4, in <module>
from tensorboard.plugins.hparams.api import HParam
ImportError: No module named 'tensorboard.plugins.hparams'
root@f8bdde043f91:/gpt-2# python3 src/generate_unconditional_samples.py | tee
/tmp/samples
Traceback (most recent call last):
File "src/generate_unconditional_samples.py", line 9, in <module>
import model, sample, encoder
File "/gpt-2/src/model.py", line 4, in <module>
from tensorboard.plugins.hparams.api import HParam
ImportError: No module named 'tensorboard.plugins.hparams'```
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 20xx
多谢各位
自动升级代码很少是现成的。对于该回购协议,您应该使用
Tensorflow=1.15
最大值如果你真的想要
Tensorflow=2
,你可以看看这个repo:https://github.com/akanyaani/gpt-2-tensorflow2.0注意:您将无法获得预先训练的模型(对于普通用户来说,这可能是gpt2中最有趣的部分)。意味着无法访问其1554M或778M型号
我不知道有什么方法可以自动将预先训练好的模型从1.15升级到2.3或诸如此类
如果您想查看我的1.x fork,可以在这里进行编译: https://github.com/timschott/gpt-2
我也遇到了同样的问题,但通过在文件夹中创建一个单独的hparams.py文件并用此处的内容填充它,问题得到了解决:https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/hparam.py
然后,在model.py中,可以添加以下代码并替换此代码:
为此:
然后,您必须在“tf”和模块之间添加“compat.v1”(如果这就是它的名称)。。。例如,如果是“tf.Session”,则将其更改为“tf.compat.v1.Session”,或者如果是“tf.placeholder”,则将其更改为“tf.compat.v1.placeholder”,等等
我在尝试降级到tensorflow gpu 1.13并且gpt-2仍然不能工作之后做了这件事。在3.6版Python中运行环境的情况也是如此
另外,这是我的第一个答案,不确定格式是否正确,但我也会边走边学
相关问题 更多 >
编程相关推荐