1

我正在尝试重现本文中的示例:https ://medium.com/@ngwaifoong92/beginners-guide-to-retrain-gpt-2-117m-to-generate-custom-text-content-8bb5363d8b7f

示例代码来自以下仓库:https ://github.com/nshepperd/gpt-2

安装需求并下载模型后,下一步是训练模型,为此必须执行此代码:

python encode.py lyric.txt lyric.npz

这里的问题是这需要导入以下模块:

import argparse
import numpy as np

import encoder
from load_dataset import load_dataset

其中encoderload_dataset位于子目录中:

|--encode.py
 --src
   |--encoder.py
   |--load_dataset.py

这会产生以下错误:

ModuleNotFoundError: No module named 'encoder'

我尝试创建__init__.py文件并将它们导入为

src.encodersrc.load_dataset但它们也不起作用。

在中篇文章中,作者建议将文件encoder.py移动到 src 并从那里执行代码,问题是这样做也会破坏模型的相对路径,尽管我处理了路径问题仍在继续对于其他文件也是如此。

4

4 回答 4

2
  1. __init__.py在文件夹内创建一个名为的空文件src
  2. 导入encoder为:from src import encoder
于 2019-08-30T07:51:54.233 回答
2

查看encode.py此处)的来源。一开始是这样的:

# Usage:
#  PYTHONPATH=src ./encode.py <file|directory|glob> /path/to/output.npz
#  PYTHONPATH=src ./train --dataset /path/to/output.npz

请再试一次,PYTHONPATH按照他们的建议进行设置。

于 2019-09-07T23:26:24.530 回答
1

这些都不适合我。但是我所做的是我安装了 python 3.6,因为 tensorflow 与这个版本兼容,我安装了以下要求:

h5py==3.1.0      
idna==2.10       
protobuf==3.13.0     
pywin32==228        
regex==2020.10.28 
requests==2.24.0     
tensorboard==2.3.0      
tensorflow==2.3.1      
tensorflow-estimator==2.3.0      
tqdm==4.51.0     
urllib3==1.25.11

更新了 tensorflow 的可视化 C++ https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads并运行 encode.py 并且它起作用了。

于 2020-11-07T20:07:10.760 回答
0

这不是 100% 正确的方法,但是为了绕过设置 pythonpath,您可以将文件从 gpt-2/ 目录复制到 src/ 目录中。

因此,在您进入 gpt-2 目录后,您可以在 cmd 行中运行以下命令。

cp encode.py src\
cp train.py src\
cp models\ src\

如果你做了所有这些,那么 cd 进入 src/ 并运行:

python filetoencode.txt filetoencode.npz

您现在应该有一个编码文件,并且能够进入博文中的后续步骤。

享受 gpt-2 的乐趣 :)

于 2019-11-07T04:15:08.063 回答