transformers 和 BERT 下载到你的本地机器
transformers and BERT downloading to your local machine
我正在尝试复制 this page 中的代码。
在我的工作场所,我们可以访问 transformers 和 pytorch 库,但无法从我们的 python 环境连接到互联网。谁能帮助我们如何在手动将文件下载到我的机器后让脚本工作?
我的具体问题是 -
我应该去bert-base-uncased at main位置下载所有文件吗?我是否已将它们放在具有特定名称的文件夹中?
我应该如何更改下面的代码
# Load pre-trained model tokenizer (vocabulary)
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
# Tokenize our sentence with the BERT tokenizer.
tokenized_text = tokenizer.tokenize(marked_text)
我应该如何更改下面的代码
# Load pre-trained model (weights)
model = BertModel.from_pretrained('bert-base-uncased',
output_hidden_states = True, # Whether the model returns all hidden-states.
)
如果有人这样做过请告诉我...谢谢
###update1
我去了 link 并手动将所有文件下载到一个文件夹,并在我的代码中指定了该文件夹的路径。 Tokenizer 工作,但这一行 model = BertModel.from_pretrained('bert-base-uncased', output_hidden_states = True, # Whether the model returns all hidden-states. )
失败。知道我该怎么办吗?我注意到下载的 4 个大文件的名称很奇怪...我应该将它们重命名为与上页所示相同的名称吗?我需要下载任何其他文件吗?
错误信息是OSErrr: unable to load weights from pytorch checkpoint file for bert-base-uncased2/ at bert-base-uncased/pytorch_model.bin If you tried to load a pytroch model from a TF 2 checkpoint, please set from_tf=True
克隆模型 repo 以下载所有文件
git lfs install
git clone https://huggingface.co/bert-base-uncased
# if you want to clone without large files – just their pointers
# prepend your git clone with the following env var:
GIT_LFS_SKIP_SMUDGE=1
git 用法:
从这里下载 git https://git-scm.com/downloads
将这些粘贴到您的 cli(终端):
一种。 gitlfs 安装
b. git 克隆 https://huggingface.co/bert-base-uncased
等待下载,需要时间。如果你想监控你的网络性能
找到当前目录只需将 cd 粘贴到您的 cli 并获取文件路径(例如“C:/Users/........./bert-base-uncased”)
用作:
from transformers import BertModel, BertTokenizer
model = BertModel.from_pretrained("C:/Users/........./bert-base-uncased")
tokenizer = BertTokenizer.from_pretrained("C:/Users/........./bert-base-uncased")
手动下载,无git:
-
将它们放在名为“yourfoldername”的文件夹中
用作:
model = BertModel.from_pretrained("C:/Users/........./yourfoldername")
tokenizer = BertTokenizer.from_pretrained("C:/Users/........./yourfoldername")
仅限机型(手动下载,无git):
只需单击此处的下载按钮并仅下载 pytorch 预训练模型。大约 420mb
https://huggingface.co/bert-base-uncased/blob/main/pytorch_model.bin
从这里下载 config.json 文件 https://huggingface.co/bert-base-uncased/tree/main
将它们都放在名为“您的文件名”的文件夹中
用作:
model = BertModel.from_pretrained("C:/Users/........./yourfilename")
正在回答错误“###update1”:'OSErrr: unable to load weights from pytorch checkpoint file for bert-base-uncased2/ at bert-base-uncased/pytorch_model.bin If you tried to load a pytroch model from a TF 2 checkpoint, please set from_tf=True'
请尝试此方法 -> https://huggingface.co/transformers/model_doc/bert.html
from transformers import BertTokenizer, BertForMaskedLM
import torch
tokenizer = BertTokenizer.from_pretrained("C:/Users/........./bert-base-uncased")
model = BertForMaskedLM.from_pretrained("C:/Users/........./bert-base-uncased")
inputs = tokenizer("The capital of France is [MASK].", return_tensors="pt")
labels = tokenizer("The capital of France is Paris.", return_tensors="pt")["input_ids"]
outputs = model(**inputs, labels=labels)
loss = outputs.loss
logits = outputs.logits
如果有效,我们知道文件系统或文件夹名称没有问题。
如果它有效,请尝试在之后获取隐藏状态(请注意,bert 模型已经 returns hiddenstate,如所解释的:“裸 Bert 模型转换器输出原始隐藏状态,顶部没有任何特定的头部。”所以你不要需要使用“output_hidden_states = True,”)
from transformers import BertTokenizer, BertModel
import torch
tokenizer = BertTokenizer.from_pretrained("C:/Users/........./bert-base-uncased")
model = BertModel.from_pretrained("C:/Users/........./bert-base-uncased")
inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state
如果此 不起作用 尝试使用这些方法之一加载 pytorch 模型
# Load all tensors onto the CPU
torch.load("C:/Users/........./bert-base-uncased/pytorch_model.bin", map_location=torch.device('cpu'))
# Load all tensors onto GPU 1
torch.load("C:/Users/........./bert-base-uncased/pytorch_model.bin", map_location=lambda storage, loc: storage.cuda(1))
如果pytorch 加载方法不起作用,我们了解到pytorch 1.4.0 与已发布的bert pytorch 模型之间存在pytorch 版本兼容性问题。或者您的 pytorch_model.bin 文件下载得不是很好。并且请注意pytorch 1.4.0发布的最后一个python是python3.4
我正在尝试复制 this page 中的代码。
在我的工作场所,我们可以访问 transformers 和 pytorch 库,但无法从我们的 python 环境连接到互联网。谁能帮助我们如何在手动将文件下载到我的机器后让脚本工作?
我的具体问题是 -
我应该去bert-base-uncased at main位置下载所有文件吗?我是否已将它们放在具有特定名称的文件夹中?
我应该如何更改下面的代码
# Load pre-trained model tokenizer (vocabulary)
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
# Tokenize our sentence with the BERT tokenizer.
tokenized_text = tokenizer.tokenize(marked_text)
我应该如何更改下面的代码
# Load pre-trained model (weights)
model = BertModel.from_pretrained('bert-base-uncased',
output_hidden_states = True, # Whether the model returns all hidden-states.
)
如果有人这样做过请告诉我...谢谢
###update1
我去了 link 并手动将所有文件下载到一个文件夹,并在我的代码中指定了该文件夹的路径。 Tokenizer 工作,但这一行 model = BertModel.from_pretrained('bert-base-uncased', output_hidden_states = True, # Whether the model returns all hidden-states. )
失败。知道我该怎么办吗?我注意到下载的 4 个大文件的名称很奇怪...我应该将它们重命名为与上页所示相同的名称吗?我需要下载任何其他文件吗?
错误信息是OSErrr: unable to load weights from pytorch checkpoint file for bert-base-uncased2/ at bert-base-uncased/pytorch_model.bin If you tried to load a pytroch model from a TF 2 checkpoint, please set from_tf=True
克隆模型 repo 以下载所有文件
git lfs install
git clone https://huggingface.co/bert-base-uncased
# if you want to clone without large files – just their pointers
# prepend your git clone with the following env var:
GIT_LFS_SKIP_SMUDGE=1
git 用法:
从这里下载 git https://git-scm.com/downloads
将这些粘贴到您的 cli(终端):
一种。 gitlfs 安装
b. git 克隆 https://huggingface.co/bert-base-uncased等待下载,需要时间。如果你想监控你的网络性能
找到当前目录只需将 cd 粘贴到您的 cli 并获取文件路径(例如“C:/Users/........./bert-base-uncased”)
用作:
from transformers import BertModel, BertTokenizer model = BertModel.from_pretrained("C:/Users/........./bert-base-uncased") tokenizer = BertTokenizer.from_pretrained("C:/Users/........./bert-base-uncased")
手动下载,无git:
将它们放在名为“yourfoldername”的文件夹中
用作:
model = BertModel.from_pretrained("C:/Users/........./yourfoldername") tokenizer = BertTokenizer.from_pretrained("C:/Users/........./yourfoldername")
仅限机型(手动下载,无git):
只需单击此处的下载按钮并仅下载 pytorch 预训练模型。大约 420mb https://huggingface.co/bert-base-uncased/blob/main/pytorch_model.bin
从这里下载 config.json 文件 https://huggingface.co/bert-base-uncased/tree/main
将它们都放在名为“您的文件名”的文件夹中
用作:
model = BertModel.from_pretrained("C:/Users/........./yourfilename")
正在回答错误“###update1”:'OSErrr: unable to load weights from pytorch checkpoint file for bert-base-uncased2/ at bert-base-uncased/pytorch_model.bin If you tried to load a pytroch model from a TF 2 checkpoint, please set from_tf=True'
请尝试此方法 -> https://huggingface.co/transformers/model_doc/bert.html
from transformers import BertTokenizer, BertForMaskedLM
import torch
tokenizer = BertTokenizer.from_pretrained("C:/Users/........./bert-base-uncased")
model = BertForMaskedLM.from_pretrained("C:/Users/........./bert-base-uncased")
inputs = tokenizer("The capital of France is [MASK].", return_tensors="pt")
labels = tokenizer("The capital of France is Paris.", return_tensors="pt")["input_ids"]
outputs = model(**inputs, labels=labels)
loss = outputs.loss
logits = outputs.logits
如果有效,我们知道文件系统或文件夹名称没有问题。
如果它有效,请尝试在之后获取隐藏状态(请注意,bert 模型已经 returns hiddenstate,如所解释的:“裸 Bert 模型转换器输出原始隐藏状态,顶部没有任何特定的头部。”所以你不要需要使用“output_hidden_states = True,”)
from transformers import BertTokenizer, BertModel
import torch
tokenizer = BertTokenizer.from_pretrained("C:/Users/........./bert-base-uncased")
model = BertModel.from_pretrained("C:/Users/........./bert-base-uncased")
inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state
如果此 不起作用 尝试使用这些方法之一加载 pytorch 模型
# Load all tensors onto the CPU
torch.load("C:/Users/........./bert-base-uncased/pytorch_model.bin", map_location=torch.device('cpu'))
# Load all tensors onto GPU 1
torch.load("C:/Users/........./bert-base-uncased/pytorch_model.bin", map_location=lambda storage, loc: storage.cuda(1))
如果pytorch 加载方法不起作用,我们了解到pytorch 1.4.0 与已发布的bert pytorch 模型之间存在pytorch 版本兼容性问题。或者您的 pytorch_model.bin 文件下载得不是很好。并且请注意pytorch 1.4.0发布的最后一个python是python3.4