【问题标题】:TFGPT2LMHeadModel unknown locationTFGPT2LMHeadModel 未知位置
【发布时间】:2021-05-03 18:43:30
【问题描述】:

我一直在玩 tensorflow (CPU) 和一些语言建模 - 到目前为止,它一直很成功 - 一切都很好。
但是在看到我的旧 CPU 慢慢地从所有模型训练中被杀死之后 - 我决定是时候最终从我的 RTX 2080 中得到一些使用了。我一直在遵循来自 washinton university: 的指南。很快我就让 tensorflow-gpu 运行起来,在一些轻量级预测之类的东西上运行它。

但是当我开始运行 GPT2 语言模型时,我遇到了一些小问题。我首先对数据进行标记:

from tokenizers.models import BPE
from tokenizers import Tokenizer
from tokenizers.decoders import ByteLevel as ByteLevelDecoder
from tokenizers.normalizers import NFKC, Sequence
from tokenizers.pre_tokenizers import ByteLevel
from tokenizers.trainers import BpeTrainer

class BPE_token(object):
def __init__(self):
    self.tokenizer = Tokenizer(BPE())
    self.tokenizer.normalizer = Sequence([
        NFKC()
    ])
    self.tokenizer.pre_tokenizer = ByteLevel()
    self.tokenizer.decoder = ByteLevelDecoder()

def bpe_train(self, paths):
    trainer = BpeTrainer(vocab_size=50000, show_progress=True, inital_alphabet=ByteLevel.alphabet(),         special_tokens=[
        "<s>",
        "<pad>",
        "</s>",
        "<unk>",
        "<mask>"
    ])
    self.tokenizer.train(trainer, paths)

def save_tokenizer(self, location, prefix=None):
    if not os.path.exists(location):
        os.makedirs(location)
    self.tokenizer.model.save(location, prefix)

# ////////// TOKENIZE DATA ////////////
from pathlib import Pa th
import os# the folder 'text' contains all the files
paths = [str(x) for x in Path("./da_corpus/").glob("**/*.txt")]
tokenizer = BPE_token()# train the tokenizer model
tokenizer.bpe_train(paths)# saving the tokenized data in our specified folder
save_path = 'tokenized_data'
tokenizer.save_tokenizer(save_path)

上面的代码可以完美运行并标记数据 - 就像使用 tensorflow (CPU) 一样。在对我的数据进行标记后,我开始训练我的模型 - 但在它开始之前,我得到以下 ImportError:

from transformers import GPT2Config, TFGPT2LMHeadModel, GPT2Tokenizer # loading tokenizer from the   saved model path
ImportError: cannot import name 'TFGPT2LMHeadModel' from 'transformers' (unknown location)

Transformers 包似乎已正确安装在 site-packages 库中,我似乎能够使用其他变压器 - 但不是 TFGPT2LMHeadModel 我已经阅读了 google 和 hugging.co 上的所有内容 - 尝试了不同版本的 tensorflow-gpu、transformers、tokenizers 和许多其他软件包 - 遗憾的是没有任何帮助。

包:

  • Python,3.7.1
  • 张量流 2.1.0
  • Tensorflow-GPU 2.1.0
  • Tensorflow-base 2.1.0
  • 张量流估计器 2.1.0
  • 变形金刚 4.2.2
  • 标记器 0.9.4
  • cudnn 7.6.5
  • cudatoolkit 10.1.243

【问题讨论】:

  • 请添加transformers.__version__的输出。
  • @cronoik 已添加!对不起,应该ofc。已经考虑过了-有点重要:)

标签: python tensorflow importerror huggingface-transformers huggingface-tokenizers


【解决方案1】:

通过安装 tensorflow-gpu=2.3.0 & cuda 10.1 解决了这个问题

按照本指南: https://medium.com/analytics-vidhya/tensorflow-2-3-0-with-gpu-support-on-windows-10-f975a552ea7c

使用此命令安装gpu2.3.0:
python -m pip install https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-2.3.0-cp37-cp37m-win_amd64.whl

【讨论】:

    【解决方案2】:

    我刚刚使用了以下按预期工作的命令。

    # installing Transformers and TensorFlow 2.0 in one line
    !pip install transformers[tf-gpu]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 2013-07-15
      • 1970-01-01
      • 2023-03-14
      • 2019-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多