婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Pytorch BertModel的使用說明

Pytorch BertModel的使用說明

熱門標(biāo)簽:400電話申請服務(wù)商選什么 原裝電話機(jī)器人 西藏智能外呼系統(tǒng)五星服務(wù) 平頂山外呼系統(tǒng)免費(fèi) 在哪里辦理400電話號碼 工廠智能電話機(jī)器人 千陽自動外呼系統(tǒng) 江蘇客服外呼系統(tǒng)廠家 清遠(yuǎn)360地圖標(biāo)注方法

基本介紹

環(huán)境: Python 3.5+, Pytorch 0.4.1/1.0.0

安裝:

pip install pytorch-pretrained-bert

必需參數(shù):

--data_dir: "str": 數(shù)據(jù)根目錄.目錄下放著,train.xxx/dev.xxx/test.xxx三個數(shù)據(jù)文件.

--vocab_dir: "str": 詞庫文件地址.

--bert_model: "str": 存放著bert預(yù)訓(xùn)練好的模型. 需要是一個gz文件, 如"..x/xx/bert-base-chinese.tar.gz ", 里面包含一個bert_config.json和pytorch_model.bin文件.

--task_name: "str": 用來選擇對應(yīng)數(shù)據(jù)集的參數(shù),如"cola",對應(yīng)著數(shù)據(jù)集.

--output_dir: "str": 模型預(yù)測結(jié)果和模型參數(shù)存儲目錄.

簡單例子:

導(dǎo)入所需包

import torch
from pytorch_pretrained_bert import BertTokenizer, BertModel, BertForMaskedLM

創(chuàng)建分詞器

tokenizer = BertTokenizer.from_pretrained(--vocab_dir)

需要參數(shù): --vocab_dir, 數(shù)據(jù)樣式見此

擁有函數(shù):

tokenize: 輸入句子,根據(jù)--vocab_dir和貪心原則切詞. 返回單詞列表

convert_token_to_ids: 將切詞后的列表轉(zhuǎn)換為詞庫對應(yīng)id列表.

convert_ids_to_tokens: 將id列表轉(zhuǎn)換為單詞列表.

text = '[CLS] 武松打老虎 [SEP] 你在哪 [SEP]'
tokenized_text = tokenizer.tokenize(text)
indexed_tokens = tokenizer.convert_tokens_to_ids(tokenized_text)
segments_ids = [0, 0, 0, 0, 0, 0, 0,0,0,0, 1,1, 1, 1, 1, 1, 1, 1]
tokens_tensor = torch.tensor([indexed_tokens])
segments_tensors = torch.tensor([segments_ids])

這里對標(biāo)記符號的切詞似乎有問題([cls]/[sep]), 而且中文bert是基于字級別編碼的,因此切出來的都是一個一個漢字:

['[', 'cl', '##s', ']', '武', '松', '打', '老', '虎', '[', 'sep', ']', '你', '在', '哪', '[', 'sep', ']']

創(chuàng)建bert模型并加載預(yù)訓(xùn)練模型:

model = BertModel.from_pretrained(--bert_model)

放入GPU:

tokens_tensor = tokens_tensor.cuda()
segments_tensors = segments_tensors.cuda()
model.cuda()

前向傳播:

encoded_layers, pooled_output= model(tokens_tensor, segments_tensors)

參數(shù):

input_ids: (batch_size, sqe_len)代表輸入實例的Tensor

token_type_ids=None: (batch_size, sqe_len)一個實例可以含有兩個句子,這個相當(dāng)于句子標(biāo)記.

attention_mask=None: (batch_size*): 傳入每個實例的長度,用于attention的mask.

output_all_encoded_layers=True: 控制是否輸出所有encoder層的結(jié)果.

返回值:

encoded_layer:長度為num_hidden_layers的(batch_size, sequence_length,hidden_size)的Tensor.列表

pooled_output: (batch_size, hidden_size), 最后一層encoder的第一個詞[CLS]經(jīng)過Linear層和激活函數(shù)Tanh()后的Tensor. 其代表了句子信息

補(bǔ)充:pytorch使用Bert

主要分為以下幾個步驟:

下載模型放到目錄中

使用transformers中的BertModel,BertTokenizer來加載模型與分詞器

使用tokenizer的encode和decode 函數(shù)分別編碼與解碼,注意參數(shù)add_special_tokens和skip_special_tokens

forward的輸入是一個[batch_size, seq_length]的tensor,再需要注意的是attention_mask參數(shù)。

輸出是一個tuple,tuple的第一個值是bert的最后一個transformer層的hidden_state,size是[batch_size, seq_length, hidden_size],也就是bert最后的輸出,再用于下游的任務(wù)。

# -*- encoding: utf-8 -*-
import warnings
warnings.filterwarnings('ignore')
from transformers import BertModel, BertTokenizer, BertConfig
import os
from os.path import dirname, abspath
root_dir = dirname(dirname(dirname(abspath(__file__))))
import torch
# 把預(yù)訓(xùn)練的模型從官網(wǎng)下載下來放到目錄中
pretrained_path = os.path.join(root_dir, 'pretrained/bert_zh')
# 從文件中加載bert模型
model = BertModel.from_pretrained(pretrained_path)
# 從bert目錄中加載詞典
tokenizer = BertTokenizer.from_pretrained(pretrained_path)
print(f'vocab size :{tokenizer.vocab_size}')
# 把'[PAD]'編碼
print(tokenizer.encode('[PAD]'))
print(tokenizer.encode('[SEP]'))
# 把中文句子編碼,默認(rèn)加入了special tokens了,也就是句子開頭加入了[CLS] 句子結(jié)尾加入了[SEP]
ids = tokenizer.encode("我是中國人", add_special_tokens=True)
# 從結(jié)果中看,101是[CLS]的id,而2769是"我"的id
# [101, 2769, 3221, 704, 1744, 782, 102]
print(ids)
# 把ids解碼為中文,默認(rèn)是沒有跳過特殊字符的
print(tokenizer.decode([101, 2769, 3221, 704, 1744, 782, 102], skip_special_tokens=False))
# print(model)
inputs = torch.tensor(ids).unsqueeze(0)
# forward,result是一個tuple,第一個tensor是最后的hidden-state
result = model(torch.tensor(inputs))
# [1, 5, 768]
print(result[0].size())
# [1, 768]
print(result[1].size())
for name, parameter in model.named_parameters():
  # 打印每一層,及每一層的參數(shù)
  print(name)
  # 每一層的參數(shù)默認(rèn)都requires_grad=True的,參數(shù)是可以學(xué)習(xí)的
  print(parameter.requires_grad)
  # 如果只想訓(xùn)練第11層transformer的參數(shù)的話:
  if '11' in name:
    parameter.requires_grad = True
  else:
    parameter.requires_grad = False
print([p.requires_grad for name, p in model.named_parameters()])

添加atten_mask的方法:

其中101是[CLS],102是[SEP],0是[PAD]

>>> a
tensor([[101,  3,  4, 23, 11,  1, 102,  0,  0,  0]])
>>> notpad = a!=0
>>> notpad
tensor([[ True, True, True, True, True, True, True, False, False, False]])
>>> notcls = a!=101
>>> notcls
tensor([[False, True, True, True, True, True, True, True, True, True]])
>>> notsep = a!=102
>>> notsep
tensor([[ True, True, True, True, True, True, False, True, True, True]])
>>> mask = notpad  notcls  notsep
>>> mask
tensor([[False, True, True, True, True, True, False, False, False, False]])
>>> 

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • PyTorch預(yù)訓(xùn)練Bert模型的示例
  • PyTorch加載預(yù)訓(xùn)練模型實例(pretrained)
  • pytorch_pretrained_bert如何將tensorflow模型轉(zhuǎn)化為pytorch模型

標(biāo)簽:白城 日照 隨州 錦州 安慶 天水 西安 股票

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Pytorch BertModel的使用說明》,本文關(guān)鍵詞  Pytorch,BertModel,的,使用說明,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Pytorch BertModel的使用說明》相關(guān)的同類信息!
  • 本頁收集關(guān)于Pytorch BertModel的使用說明的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    fc2成人免费人成在线观看播放| 国产一级精品在线| 一区二区三区精品在线| 九九**精品视频免费播放| 欧美丰满少妇xxxxx高潮对白| 国产精品日产欧美久久久久| 国产做a爰片久久毛片| 欧美性猛交一区二区三区精品| 一区视频在线播放| 一区二区三区在线观看视频| 欧美不卡一区二区三区四区| 色哟哟国产精品| 国产精品视频一二三区| 国产aⅴ综合色| 国产日本一区二区| 久久99热99| 欧美乱妇15p| 免费在线观看视频一区| 精品国产一区二区精华| 成人午夜激情视频| 亚洲小说欧美激情另类| 欧美一区二区三区免费大片 | 欧美日韩一区二区不卡| 亚洲国产成人91porn| 欧美精品一二三区| 成人丝袜视频网| 成人免费视频免费观看| 欧美亚洲国产一区在线观看网站| 久久综合久久综合亚洲| 色婷婷综合久久久久中文一区二区| 国产精品视频一区二区三区不卡| 99久久99久久精品免费观看| 日日噜噜夜夜狠狠视频欧美人 | 亚洲色图一区二区| 欧美精品99久久久**| 成人三级在线视频| 在线看国产一区| 欧美一区国产二区| 国产精品第五页| 日本道免费精品一区二区三区| 久久网站热最新地址| 亚洲成人中文在线| 免费成人你懂的| 97久久超碰国产精品| 一级女性全黄久久生活片免费| 欧美精品第一页| 国产美女av一区二区三区| 亚洲男人的天堂在线观看| 欧美日韩在线三区| 欧美日本一区二区三区四区| 亚洲一区二区在线观看视频| 国产精品系列在线| 亚洲精品在线免费播放| 99视频在线精品| 日本欧美久久久久免费播放网| 欧美韩日一区二区三区| 欧美日韩精品三区| 国产福利精品导航| 男人的j进女人的j一区| 亚洲人成伊人成综合网小说| 久久综合精品国产一区二区三区| 欧美卡1卡2卡| 在线观看三级视频欧美| 色先锋aa成人| 欧美亚洲另类激情小说| 国产原创一区二区三区| 91国偷自产一区二区三区观看| 欧美xxx久久| 亚洲色图一区二区| 亚洲成精国产精品女| 日韩区在线观看| 欧美亚洲图片小说| 欧美性受xxxx黑人xyx性爽| 成人av免费在线播放| 成人app在线| 成人小视频免费在线观看| 国产风韵犹存在线视精品| 精品午夜久久福利影院| 久久国产三级精品| 国产一区二区免费看| 国产一区视频导航| 国产91在线|亚洲| 国产·精品毛片| 99久久伊人久久99| 一区二区三区在线观看欧美| 国产亚洲欧美日韩日本| 一区二区三区蜜桃网| 国产一区二区三区黄视频| 美女一区二区三区在线观看| 久久国产视频网| 精品亚洲aⅴ乱码一区二区三区| 亚洲综合丁香婷婷六月香| 亚洲欧美韩国综合色| 一区二区三区在线看| 亚洲线精品一区二区三区| 蜜臀精品一区二区三区在线观看| 日韩电影免费在线观看网站| 极品瑜伽女神91| 成人免费看的视频| 在线观看日产精品| 欧美日韩精品系列| 精品三级在线观看| 亚洲天堂福利av| 欧美偷拍一区二区| 亚洲国产成人av好男人在线观看| 亚洲婷婷综合久久一本伊一区| 五月激情综合网| 国产高清在线精品| 欧美日韩中文精品| 欧美videos中文字幕| 中文字幕在线观看一区| 专区另类欧美日韩| 秋霞av亚洲一区二区三| 成人自拍视频在线观看| 久久久亚洲国产美女国产盗摄| 精品国产欧美一区二区| 亚洲乱码国产乱码精品精小说| 日韩1区2区3区| 成人av在线播放网址| 日韩一区二区精品葵司在线| 日韩一区欧美小说| 麻豆一区二区在线| 欧美天堂一区二区三区| 日韩三级视频在线看| 国产成人一区在线| 国产成人av一区二区三区在线观看| av网站一区二区三区| 91精品综合久久久久久| 成人欧美一区二区三区小说| 美日韩黄色大片| 欧美日韩亚洲国产综合| 国产清纯白嫩初高生在线观看91 | 国产91露脸合集magnet | 欧美电影免费观看完整版| 亚洲激情中文1区| 国产精品白丝jk黑袜喷水| 欧美高清www午色夜在线视频| 国产精品福利一区| 成人免费视频一区| 国产精品欧美一区二区三区| 美女任你摸久久 | 日韩一区二区免费在线观看| 午夜免费久久看| 欧美色网一区二区| 一区二区欧美国产| 91免费观看视频| 中文字幕在线一区免费| 成人激情黄色小说| 国产精品久久久久久久蜜臀| 91视频免费看| 国产精品美女久久久久久| 韩国女主播成人在线| 久久久久久99精品| 国产激情精品久久久第一区二区| 久久久久久久久久久久久女国产乱| 美日韩黄色大片| 国产欧美一区二区在线| 国模无码大尺度一区二区三区| 2017欧美狠狠色| 风间由美性色一区二区三区| 欧美国产欧美综合| 成人av网站免费观看| 亚洲一区二区在线播放相泽| 日韩你懂的在线观看| 国产一区二区三区观看| 中文字幕日韩精品一区| 欧美在线综合视频| 三级久久三级久久| 欧美国产日本韩| 欧美日韩国产美女| 91丨九色porny丨蝌蚪| 亚洲激情成人在线| 欧美片网站yy| 国产传媒一区在线| 亚洲视频资源在线| 日韩一级高清毛片| 国产精品中文字幕一区二区三区| 亚洲欧洲另类国产综合| 色婷婷av一区二区三区gif | 欧美一卡2卡三卡4卡5免费| 香港成人在线视频| 欧美www视频| 一本久久a久久精品亚洲| 亚洲午夜一区二区| 久久网站热最新地址| 波多野结衣欧美| 午夜视频一区二区三区| 亚洲欧美日韩国产另类专区 | 精品av久久707| 成人性色生活片免费看爆迷你毛片| 亚洲精品日日夜夜| 欧美一级片在线看| 91一区在线观看| 久久99国产精品成人| 国产精品午夜在线观看| 欧美高清一级片在线| 欧洲一区二区三区免费视频| 国产在线视视频有精品| 亚洲国产精品自拍| 亚洲美女偷拍久久|