【过一下 17】pytorch 改写 keras
任务
pytorch自建模型转keras
想法
- 有pytorch的自建模型代码
- 可以一行一行的找到keras里相应的层去代替(手工转写
- Pytorch转keras的有效方法,以FlowNet为例_咆哮的阿杰的博客-CSDN博客_pytorch转keras
- tensorflow和keras_手动 pytorch 模型转 tensorflow keras 模型_weixin_39637920的博客-CSDN博客
- 有自建模型导出的onnx,作为中间件
- 可以onnx转keras(自动转
- 搞不出来
查到的博客
首先,我们必须有清楚的认识,网上以及github上一些所谓的pytorch转换Keras或者Keras转换成Pytorch的工具代码几乎不能运行或者有使用的局限性(比如仅仅能转换某一些模型),但是我们是可以用这些转换代码中看出一些端倪来,比如二者的参数的尺寸(shape)的形式、channel的排序(first or last)是否一样,掌握到差异性,就能根据这些差异自己编写转换代码,没错,自己编写转换代码,是最稳妥的办法。整个过程也就分为两个部分。笔者将会以Nvidia开源的FlowNet为例,将开源的Pytorch代码转化为Keras模型。
按照Pytorch中模型的结构,编写对应的Keras代码,用keras的函数式API,构建起来会非常方便。
把Pytorch的模型参数,按照层的名称依次赋值给Keras的模型
以上两步虽然看上去简单,但实际我也走了不少弯路。这里一个关键的地方,就是参数的shape在两个框架中是否统一,那当然是不统一的。查到的博客
pytorch 到 tensorflow 可以用onnx作为中间工具转换,将pytorch转为onnx,再从onnx转为tensorflow,但是中间可能出现一些乱七八糟的问题。其实手动读参数再填充的对应的模型中也很方便,本文就总结一下手动模型转换。
过程
我肯定是先尝试 自动转
pytorch模型转keras模型_AI算法-图哥的博客-CSDN博客_pytorch2keras
ONNX系列二 — 使用ONNX使Keras模型可移植_寒冰屋的博客-CSDN博客_keras onnx
安装一下
接触到了(load和load_state_dict)的问题
Pytorch保存和加载模型(load和load_state_dict)_木盏的博客-CSDN博客_pytorch 加载模型
插曲
安装whl
可以通过查看python版本和安装对应python版本的离线安装包(附.whl安装网页链接)_Az_z的博客-CSDN博客_离线安装指定版本python
真是服了,onnx1.8.1之后移除了了optimizer那个包,然后pytorch2keras这个包要用的就是版本就是1.8.1及之前的,onnx1.8.1支持py3.8,然后我Py3.9。所以只得在另一个虚拟环境(py3.6)里面重新安装了相应的包(400M的tensorflow还有torch等等)。安好了,以为现在可以用了
然后报 modulelist的错
然后我导出成onnx,再load,就报“TypeError: ‘ModelProto’ object is not callable”的错
我真是服了。
看来只能手工写一下了
python关于onnx模型的一些基本操作_一杯盐水的博客-CSDN博客_onnx 静态量化
学习keras,主要是 两边参数不一样
改倒是好改。(不问对错,就是搭积木)
看的一些博客
结果
input_data = keras.layers.Input(shape=(4,1), dtype='float64')
cnn_out = keras.layers.Conv1D(1, kernel_size=2, strides=1)(input_data)
cnn_out = keras.layers.MaxPool1D(2)(cnn_out)
lstm_out =keras.layers.LSTM(4)(cnn_out)
dense_out = keras.layers.Dense(3,activation='softmax')(lstm_out)
model = keras.Model(input_data, dense_out)model.compile(optimizer='adam',loss='mean_absolute_error',metrics=['accuracy'])model.summary()
改写成功了,但是准确率什么的,很垃
【过一下 17】pytorch 改写 keras相关推荐
- 使用netron对TensorFlow、Pytorch、Keras、PaddlePaddle、MXNet、Caffe、ONNX、UFF、TNN、ncnn、OpenVINO等模型的可视化
欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 使用netron对TensorFlow.Pytorch.Keras.PaddlePaddle.MXNet.Caffe.O ...
- keras cnn注意力机制_TensorFlow、PyTorch、Keras:NLP框架哪家强
全文共3412字,预计学习时长7分钟 在对TensorFlow.PyTorch和Keras做功能对比之前,先来了解一些它们各自的非竞争性柔性特点吧. 非竞争性特点 下文介绍了TensorFlow.Py ...
- DL框架:主流深度学习框架(TensorFlow/Pytorch/Caffe/Keras/CNTK/MXNet/Theano/PaddlePaddle)简介、多个方向比较、案例应用之详细攻略
DL框架:主流深度学习框架(TensorFlow/Pytorch/Caffe/Keras/CNTK/MXNet/Theano/PaddlePaddle)简介.多个方向比较.案例应用之详细攻略 目录 深 ...
- 【CV】YOLOv4最全复现代码合集(含PyTorch/TF/Keras和Caffe等)
前言 2020年4月24日,CVer第一时间推文:大神接棒,YOLOv4来了! 2020年6月28日,CVer第一时间推文:YOLOv4-Tiny来了!371 FPS! 距离YOLOv4正式推出,已经 ...
- 机器学习17:用Keras实现图片数据增广的方法和实践
Keras图片增强 CNN中图片具有平移不变形,旋转不变形,如下图,而在实际应用中训练数据常常不足, 或不均衡, 因此我们可以通过增强数据,扩展训练集. 我们可以对现有的数据,进行平移.翻转.旋转.缩 ...
- 上手必备!不可错过的TensorFlow、PyTorch和Keras样例资源
作者 | 黄海广来源 | 机器学习初学者(ID: ai-start-com)TensorFlow.Keras和PyTorch是目前深度学习的主要框架,也是入门深度学习必须掌握的三大框架,但是官方文档相 ...
- 纠结pytorch, tensorflow, keras 一个月之后,我自己创造了一个神经网络框架
深度学习神经网络正步入成熟,而深度学习框架目前众多,大都可以在图像识别.手写识别.视频识别.语音识别.目标识别和自然语言处理等诸多领域大显身手. 深度学习框架平台占据人工智能产业生态的核心地位,具有统 ...
- 强烈推荐的TensorFlow、Pytorch和Keras的样例资源(深度学习初学者必须收藏)
TensorFlow.Keras和Pytorch是目前深度学习的主要框架,也是入门深度学习必须掌握的三大框架,但是官方文档相对内容较多,初学者往往无从下手.本人从github里搜到三个非常不错的学习资 ...
- scikit keras_Scikit学习,TensorFlow,PyTorch,Keras…但是天秤座呢?
scikit keras Welcome all! In the first episode of this series, I investigated the four most known ma ...
最新文章
- SpaceX和美国宇航局计划明年4月向国际空间站发射Crew-4
- 跨站脚本攻击(反射型xss)笔记(一)
- js 多个定时器_《进击的前端工程师》Node.js事件循环
- js实现调用摄像头拍照功能
- Django中URL和View的关系
- 1004. 伊甸园日历游戏
- uniapp多选框组件太难用,自己手写一个它不香吗?
- linux irq 接口,中断机制 – Linux内核API irq_set_chip_data
- C语言串口通信AD转换定时器中断,大神们能帮我看一下程序吗?为啥串口中断没法打断定时器中断。...
- 【招聘(南京)】 慧咨环球南京研发中心 .NET和Blazor 前端
- SpringBoot - @EnableConfigurationProperties注解使用详解
- 【Python】成功解决 str object has no attribute decode
- 复制加密内存卡(TF卡、U盘)资料的方法
- 如何开发股票软件404
- ipad怎么和mac分屏_苹果分屏功能怎么用?开启ipad分屏只需要一个步骤!
- 6.《练习:vue之用指令制作横幅》
- 2023新一代设备管理系统助力企业高效化巡检
- Stable Diffusion背后的故事:独辟蹊径,开源和社区驱动的AI独角兽 | 创始人专访...
- os.listdir在linux和windows下结果不同(os.listdir乱序)
- 二胡教程视频自学指南
热门文章
- 光之触角——光敏电阻、光敏二极管、光敏三极管与光照发生器
- 老男孩读PCIe之四:TLP类型
- 金丝楠PhoebeSheareri
- Cesium调用高德地图服务实现搜索地点定位详解
- Digilent Analog Discovery Studio视频教程:DAQWare for Digilent AD 1.0.3新功能
- java 某个类 单独输出日志_log4j实现特定功能的日志单独输出到指定的日志文件...
- 直流双闭环调速系统的计算机仿真,直流电动机双闭环调速系统的动态特性研究与仿真.doc...
- 三种遍历 list对象从而选择性取值的方式
- 海瑞单薄 台词深奥 《大明王朝》续集全面“纠错”
- 看看人家,才知道长期主义的好处!