pytorch_pretrained_bert如何將tensorflow模型轉(zhuǎn)化為pytorch模型
pytorch_pretrained_bert將tensorflow模型轉(zhuǎn)化為pytorch模型
BERT倉庫里的模型是TensorFlow版本的,需要進(jìn)行相應(yīng)的轉(zhuǎn)換才能在pytorch中使用
在Google BERT倉庫里下載需要的模型,這里使用的是中文預(yù)訓(xùn)練模型(chinese_L-12_H-768_A_12)
下載chinese_L-12_H-768_A-12.zip后解壓,里面有5個文件
chinese_L-12_H-768_A-12.zip后解壓,里面有5個文件
bert_config.json
bert_model.ckpt.data-00000-of-00001
bert_model.ckpt.index
bert_model.ckpt.meta
vocab.txt
使用bert倉庫里的convert_bert_original_tf_checkpoint_to_pytorch.py將此模型轉(zhuǎn)化為pytorch版本的,這里我的文件夾位置為:D:\Work\BISHE\BERT-Dureader\data\chinese_L-12_H-768_A-12,替換為自己的即可
python convert_tf_checkpoint_to_pytorch.py --tf_checkpoint_path D:\Work\BISHE\BERT-Dureader\data\chinese_L-12_H-768_A-12\bert_model.ckpt --bert_config_file D:\Work\BISHE\BERT-Dureader\data\chinese_L-12_H-768_A-12\bert_config.json --pytorch_dump_path D:\Work\BISHE\BERT-Dureader\data\chinese_L-12_H-768_A-12\pytorch_model.bin
注:這里讓我疑惑的是模型有5個文件,為什么轉(zhuǎn)化的時候使用的是bert_model.ckpt,而且這個文件也不存在呀,是我對TensorFlow的模型不太熟悉,查閱資料之后將5個文件的作用說明如下:
$ tree chinese_L-12_H-768_A-12/ chinese_L-12_H-768_A-12/ ├── bert_config.json <- 模型配置文件 ├── bert_model.ckpt.data-00000-of-00001 <- 保存斷點(diǎn)文件列表,可以用來迅速查找最近一次的斷點(diǎn)文件 ├── bert_model.ckpt.index <- 為數(shù)據(jù)文件提供索引,存儲的核心內(nèi)容是以tensor name為鍵以BundleEntry為值的表格entries,BundleEntry主要內(nèi)容是權(quán)值的類型、形狀、偏移、校驗(yàn)和等信息。 ├── bert_model.ckpt.meta <- 是MetaGraphDef序列化的二進(jìn)制文件,保存了網(wǎng)絡(luò)結(jié)構(gòu)相關(guān)的數(shù)據(jù),包括graph_def和saver_def等 └── vocab.txt <- 模型詞匯表文件 0 directories, 5 files
在調(diào)用模型時使用chinese_L-12_H-768_A-12\bert_model.ckpt即可。
TensorFlow 讀取ckpt文件中的tensor,將ckpt模型轉(zhuǎn)為pytorch模型
想用MobileNet V1訓(xùn)練自己的數(shù)據(jù),發(fā)現(xiàn)pytorch沒有MobileNet V1的預(yù)訓(xùn)練權(quán)重,只好先下載TensorFlow的預(yù)訓(xùn)練權(quán)重,再轉(zhuǎn)成pytorch模型。
讀取ckpt中的Tensor名稱以及Tensor值
TensorFlow的MobileNet V1預(yù)訓(xùn)練權(quán)重文件如下:
解壓完文件后,發(fā)現(xiàn)沒有.ckpt文件,文件名只需'./my_model/mobilenet_v1_1.0_224/mobilenet_v1_1.0_224.ckpt'這樣寫就行。
寫一半發(fā)現(xiàn)Tensor名稱好難對應(yīng)起來。希望能給大家一個參考,也希望大家多多支持腳本之家
- tensorflow2.10使用BERT實(shí)現(xiàn)Semantic Similarity過程解析
- 深度學(xué)習(xí)Tensorflow2.8?使用?BERT?進(jìn)行文本分類
- 使用Tensorflow?hub完成目標(biāo)檢測過程詳解
- 使用TensorFlow創(chuàng)建生成式對抗網(wǎng)絡(luò)GAN案例
- javascript命名約定(變量?函數(shù)?類?組件)
- Tensorflow2.4從頭訓(xùn)練Word?Embedding實(shí)現(xiàn)文本分類
- Tensorflow 2.4 搭建單層和多層 Bi-LSTM 模型
- Tensorflow2.10使用BERT從文本中抽取答案實(shí)現(xiàn)詳解
相關(guān)文章
Python 管理依賴包工具pip, virtualenv詳解
管理依賴包是Python開發(fā)中不可或缺的一部分,通過pip、virtualenv和pipenv等工具,我們可以有效地管理包和虛擬環(huán)境,確保項(xiàng)目的可移植性和一致性,這篇文章主要介紹了Python 管理依賴包(pip, virtualenv),需要的朋友可以參考下2024-07-07Django之全局使用request.user.username的實(shí)例詳解
這篇文章主要介紹了Django之全局使用request.user.username的實(shí)例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05通過Python實(shí)現(xiàn)自動填寫調(diào)查問卷
這篇文章主要介紹了通過Python實(shí)現(xiàn)自動填寫調(diào)查問卷的相關(guān)資料,需要的朋友可以參考下2017-09-09Python批量發(fā)送post請求的實(shí)現(xiàn)代碼
昨天學(xué)了一天的Python(我的生產(chǎn)語言是java,也可以寫一些shell腳本,算有一點(diǎn)點(diǎn)基礎(chǔ)),今天有一個應(yīng)用場景,就正好練手了2018-05-05python自動化腳本安裝指定版本python環(huán)境詳解
這篇文章主要為大家詳細(xì)介紹了python自動化腳本安裝指定版本python環(huán)境的相關(guān)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09python 爬蟲 實(shí)現(xiàn)增量去重和定時爬取實(shí)例
今天小編就為大家分享一篇python 爬蟲 實(shí)現(xiàn)增量去重和定時爬取實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02