dnn分类鸢尾花 pytorch_笔记: (Pytorch版)Bert模型-fine-tuning 篇

本文介绍了如何在Pytorch中使用BERT模型进行微调(Fine-Tuning),探讨了迁移学习的概念,并详细阐述了模型训练过程。包括数据加载、模型参数设置、预训练模型的选择以及训练细节。通过训练和验证,展示了BERT模型在特定任务上的应用。
摘要由CSDN通过智能技术生成

BERT模型解读分为Bert模型-数据加载篇,Bert模型-fine-tuning 篇,Bert模型-输出篇, Pytorch版源代码解读篇.

第一篇 (Pytorch版)Bert模型-数据加载篇 讲述了如何加载数据,为数据送入模型做准备.

本篇为第二篇,讲述模型训练过程.训练代码在github中的train_eval.py文件下 .模型参数信息代码在 models文件夹下

本篇将讲述 如何使用加载好的数据 微调预训练模型的参数,就是所谓的 fine-tuning.

其实 fine-tuning 属于迁移学习的一种实现方式.

迁移学习 关心的是: 任务中的“知识”是什么以及如何更好地运用之前得到的“知识” 在新的任务中使用。这可以有很多方法和手段。而fine-tune只是其中的一种手段。

先下载好Bert预训练模型(预训练模型来自google的github)

BERT-Large, Uncased.(Whole Word Masking): 24-layer, 1024-hidden, 16-heads, 340M parameters

BERT-Large, Cased(Whole Word Masking) : 24-layer, 1024-hidden, 16-heads, 340M parameters

BERT-Base, Uncased: 12-layer, 768-hidden, 12-heads, 110M parameters

BERT-Large, Uncased: 24-layer, 1024-hidden, 16-heads, 340M parameters

BERT-Base, Cased: 12-layer, 768-hidden, 12-heads , 110M parameters

BERT-Large, Cased: 24-layer, 1024-hidden, 16-heads, 340M parameters

BERT-Base, Multilingual Cased (New, recommended): 104 languages, 12-layer, 768-hidden, 12-heads, 110M parameters

BERT-Base, Multilingual Uncased (Orig, not recommended) (Not recommended, use Multilingual Cased instead): 102 languages, 12-layer, 768-hidden, 12-heads, 110M parameters

BERT-Base, Chinese: Chinese Simplified and Traditional, 12-layer, 768-hidden, 12-heads, 110M parameters

前6个为英文模型,Multilingual代表多语言模型,最后一个是中文模型(字级别)

Uncased 代表将字母全部转换成小写,而Cased代表保留了大小写

如果想使用其他预训练模型(其实挺多选择的),可以找到对应模型的github 下载即可,**

下载解压之后的有3个文件( 一个json文件 一个bin文件 一个vocab.txt文件 ,共三个) 放入对应的预训练模型文件夹即可 ( 在我的github 中为bert_pretrain文件夹),接下来进入正文

模型加载

parser.add_argument('--model', default='ERNIE',type=str, help='choose a model: Bert, ERNIE')

args = parser.parse_args()

if __name__ == '__main__':

dataset = 'datas' # 数据集

model_name = args.model # bert

print(model_name)

x = import_module('models.' + model_name)#导入模型

print(1)

config = x.Config(dataset)#加载配置参数

np.random.seed(1)

torch.manual_seed(1)

torch.cuda.manual_seed_all(1)

torch.backends.cudnn.deterministic = True # 保证每次结果一样

start_time = time.time()

print("Loadin

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
[ERROR:0@1.536] global D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\net_impl.cpp (1203) cv::dnn::dnn4_v20220524::Net::Impl::getLayerShapesRecursively OPENCV/DNN: [Pooling]:(onnx_node!AveragePool_75): getMemoryShapes() post validation failed. inputs=1 outputs=1/1 blobs=0 inplace=0 [ERROR:0@1.536] global D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\net_impl.cpp (1206) cv::dnn::dnn4_v20220524::Net::Impl::getLayerShapesRecursively input[0] = [ 1 128 7 7 ] [ERROR:0@1.536] global D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\net_impl.cpp (1210) cv::dnn::dnn4_v20220524::Net::Impl::getLayerShapesRecursively output[0] = [ 1 128 -2147483648 -2147483648 ] [ERROR:0@1.536] global D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\net_impl.cpp (1216) cv::dnn::dnn4_v20220524::Net::Impl::getLayerShapesRecursively Exception message: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\net_impl.cpp:1195: error: (-2:Unspecified error) in function 'void __cdecl cv::dnn::dnn4_v20220524::Net::Impl::getLayerShapesRecursively(int,class std::map<int,struct cv::dnn::dnn4_v20220524::detail::LayerShapes,struct std::less<int>,class std::allocator<struct std::pair<int const ,struct cv::dnn::dnn4_v20220524::detail::LayerShapes> > > &)' > (expected: 'total(os[i]) > 0'), where > 'total(os[i])' is 0 > must be greater than > '0' is 0 Traceback (most recent call last): File "C:\Users\20496\Desktop\00\1.py", line 23, in <module> output = net.forward() # 网络的计算,返回网络的输出 cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\net_impl.cpp:1195: error: (-2:Unspecified error) in function 'void __cdecl cv::dnn::dnn4_v20220524::Net::Impl::getLayerShapesRecursively(int,class std::map<int,struct cv::dnn::dnn4_v20220524::detail::LayerShapes,struct std::less<int>,class std::allocator<struct std::pair<int const ,struct cv::dnn::dnn4_v20220524::detail::LayerShapes> > > &)' > (expected: 'total(os[i]) > 0'), where > 'total(os[i])' is 0 > must be greater than > '0' is 0
07-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值