赞
踩
Transformers库也叫(pytorch-transformers
and pytorch-pretrained-bert
),提供了很多SOTA的预训练模型,比如BERT, GPT-2, RoBERTa, XLM, DistilBert, XLNet, CTRL…
这个库比上一篇博客中讲的 pytorch-pretrained-bert
库更完整,bert的使用方法略有不同,不需要自己手动去下载模型和词表这两个东西了,第一次运行的时候程序会自动下载,同时forward函数里也没有output_all_encoded_layers
这个参数了,默认返回的就是最后一层的所有token的embedding和cls
字符的embedding
比如Bert的简单使用:
from transformers import BertModel, BertTokenizer import numpy as np import torch ### 1. 这种方式是不需要手动下载模型文件,在网速快的时候使用 tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') bert = BertModel.from_pretrained('bert-base-uncased') ### 2. 这种方式是需要手动下载模型文件,网速慢使用,推荐使用第2种。 tokenizer = BertTokenizer.from_pretrained('E:/Projects/bert-base-uncased/bert-base-uncased-vocab.txt') bert = BertModel.from_pretrained('E:/Projects/bert-base-uncased/bert-base-uncased/') s = "I'm not sure, this can work, lol -.-" # tokens = tokenizer.tokenize(s) # tokens = ["[CLS]"] + tokens + ["[SEP]"] # ids1 = torch.tensor([tokenizer.convert_tokens_to_ids(tokens)]) # print(ids1) # 上面三行代码也可以用这一行来代替 ids2 = torch.tensor([tokenizer.encode(s, add_special_tokens=True)]) print(ids2) result = bert(ids2) print(result)
更具体的细节可以看官网Transformers
Github地址在这
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。