【问题标题】:Can't import the encoder code for fine tuning GPT-2无法导入用于微调 GPT-2 的编码器代码
【发布时间】:2020-01-03 08:47:58
【问题描述】:

我正在尝试重现本文中的示例: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 并从那里执行代码,问题是这样做也会破坏模型的相对路径,尽管我处理了其他文件的路径问题。

【问题讨论】:

  • 如果成功请接受,谢谢

标签: python path nlp init gpt-2


【解决方案1】:
  1. src 文件夹中创建一个名为__init__.py 的空文件。
  2. encoder 导入为:from src import encoder

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      这不是 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 的乐趣 :)

      【讨论】:

        【解决方案4】:

        这些都不适合我。但是我所做的是我安装了 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 https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads 的可视化 C++ 并运行 encode.py 并且它工作正常。

        【讨论】:

          猜你喜欢
          • 2016-07-23
          • 2020-11-30
          • 2015-04-08
          • 1970-01-01
          • 1970-01-01
          • 2017-08-16
          • 1970-01-01
          • 2021-02-24
          • 1970-01-01
          相关资源
          最近更新 更多