我的编程空间,编程开发者的网络收藏夹
学习永远不晚

pytorch_pretrained_bert如何将tensorflow模型转化为pytorch模型

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

pytorch_pretrained_bert如何将tensorflow模型转化为pytorch模型

pytorch_pretrained_bert将tensorflow模型转化为pytorch模型

BERT仓库里的模型是TensorFlow版本的,需要进行相应的转换才能在pytorch中使用

在Google BERT仓库里下载需要的模型,这里使用的是中文预训练模型(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将此模型转化为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个文件,为什么转化的时候使用的是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  <- 保存断点文件列表,可以用来迅速查找最近一次的断点文件
├── bert_model.ckpt.index                <- 为数据文件提供索引,存储的核心内容是以tensor name为键以BundleEntry为值的表格entries,BundleEntry主要内容是权值的类型、形状、偏移、校验和等信息。
├── bert_model.ckpt.meta                 <- 是MetaGraphDef序列化的二进制文件,保存了网络结构相关的数据,包括graph_def和saver_def等
└── vocab.txt                            <- 模型词汇表文件

0 directories, 5 files

在调用模型时使用chinese_L-12_H-768_A-12\bert_model.ckpt即可。

TensorFlow 读取ckpt文件中的tensor,将ckpt模型转为pytorch模型

想用MobileNet V1训练自己的数据,发现pytorch没有MobileNet V1的预训练权重,只好先下载TensorFlow的预训练权重,再转成pytorch模型。

读取ckpt中的Tensor名称以及Tensor值

TensorFlow的MobileNet V1预训练权重文件如下:

解压完文件后,发现没有.ckpt文件,文件名只需'./my_model/mobilenet_v1_1.0_224/mobilenet_v1_1.0_224.ckpt'这样写就行。

写一半发现Tensor名称好难对应起来。希望能给大家一个参考,也希望大家多多支持编程网

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

pytorch_pretrained_bert如何将tensorflow模型转化为pytorch模型

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何将大型语言模型(LLM)转换为嵌入模型

嵌入模型已经成为大型语言模型(LLM)应用的重要组成部分,可以实现检测文本相似度、信息检索和聚类等任务。然而,与生成任务中使用的架构不同,嵌入模型主要基于Transformer架构。

如何在PyTorch和TensorFlow中训练图像分类模型

图像分类是计算机视觉的最重要应用之一。它的应用范围包括从自动驾驶汽车中的物体分类到医疗行业中的血细胞识别,从制造业中的缺陷物品识别到建立可以对戴口罩与否的人进行分类的系统。

Java 怎样才能调用 PyTorch 模型?(java如何调用pytorch模型)

在当今的软件开发领域,Java和PyTorch都是非常受欢迎的技术。Java以其强大的后端开发能力和广泛的应用场景而闻名,而PyTorch则是深度学习领域的佼佼者,用于构建和训练神经网络模型。将Java和PyTorch结合起来,可以为开发人员提供更多的选择和灵活性。本文将介
Java 怎样才能调用 PyTorch 模型?(java如何调用pytorch模型)
Javapytorch2024-12-22

thinkphp模型如何转为数组

本文小编为大家详细介绍“thinkphp模型如何转为数组”,内容详细,步骤清晰,细节处理妥当,希望这篇“thinkphp模型如何转为数组”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。方法一:toArray方法th
2023-07-05

如何将一个算法模型转换成端智能模型?

本文我们学习如何将一个算法模型转换成端智能模型,并且,介绍了 JAX 和 TVM 两个典型的模型编译工具,用示例学习并掌握了优化模型性能的方法。

如何保存和加载TensorFlow模型

在TensorFlow中,可以使用tf.train.Saver类来保存和加载模型。以下是保存和加载TensorFlow模型的步骤:保存模型:import tensorflow as tf# 创建一个Saver对象saver = tf.tr
如何保存和加载TensorFlow模型
2024-03-01

如何在PyTorch中进行模型的可视化

在PyTorch中进行模型的可视化通常使用第三方库如torchviz或tensorboard。以下是如何使用这两个库进行模型可视化的方法:使用torchviz库:首先需要安装torchviz库:pip install torchviz然后
如何在PyTorch中进行模型的可视化
2024-03-14

如何将PyTorch Lightning模型部署到生产环境?

本文全面介绍了如何大规模部署PyTorch Lightning模型。

pytorch如何实现模型剪枝

这篇文章主要介绍“pytorch如何实现模型剪枝”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“pytorch如何实现模型剪枝”文章能帮助大家解决问题。一,剪枝分类所谓模型剪枝,其实是一种从神经网络中
2023-07-05

C++下如何将TensorFlow模型封装成DLL供C#调用

这篇文章主要介绍了C++下如何将TensorFlow模型封装成DLL供C#调用问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

如何优化PyTorch以加快模型训练速度?

本文将分享几个最新的性能调优技巧,以加速跨领域的机器学习模型的训练。这些技巧对任何想要使用PyTorch实现高级性能调优的人都大有帮助。

PyTorch中如何进行模型蒸馏

模型蒸馏(model distillation)是一种训练较小模型以近似较大模型的方法。在PyTorch中,可以通过以下步骤进行模型蒸馏:定义大模型和小模型:首先需要定义一个较大的模型(教师模型)和一个较小的模型(学生模型),通常教师模型比
PyTorch中如何进行模型蒸馏
2024-03-05

PyTorch模型转换为ONNX格式实现过程详解

这篇文章主要为大家介绍了PyTorch模型转换为ONNX格式实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-17

如何使用TensorBoard可视化TensorFlow模型的训练过程

要使用TensorBoard来可视化TensorFlow模型的训练过程,需要按照以下步骤操作:在代码中添加TensorBoard回调函数:在TensorFlow模型的训练过程中,可以通过添加TensorBoard回调函数来收集训练过程中的指
如何使用TensorBoard可视化TensorFlow模型的训练过程
2024-03-01

TensorFlow中的模型鲁棒性如何提高

TensorFlow中的模型鲁棒性可以通过以下几种方式来提高:数据预处理和增强:对输入数据进行预处理和增强可以帮助提高模型的鲁棒性。例如,对输入数据进行标准化、归一化等操作可以消除数据中的噪声和不一致性,从而提高模型的泛化能力。Dropou
TensorFlow中的模型鲁棒性如何提高
2024-03-01

在PyTorch中如何进行模型权重的正则化

在PyTorch中,可以使用torch.nn.Module类中的parameters()方法来获取模型的权重参数,然后使用正则化方法来对这些参数进行约束。下面是一个示例代码,演示了如何对模型的权重进行L2正则化:import torch
在PyTorch中如何进行模型权重的正则化
2024-03-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录