keras实现theano和tensorflow训练的模型相互转换


Posted in Python onJune 19, 2020

我就废话不多说了,大家还是直接看代码吧~

</pre><pre code_snippet_id="1947416" snippet_file_name="blog_20161025_1_3331239" name="code" class="python">

# coding:utf-8
"""
If you want to load pre-trained weights that include convolutions (layers Convolution2D or Convolution1D),
be mindful of this: Theano and TensorFlow implement convolution in different ways (TensorFlow actually implements correlation, much like Caffe),
and thus, convolution kernels trained with Theano (resp. TensorFlow) need to be converted before being with TensorFlow (resp. Theano).
"""
from keras import backend as K
from keras.utils.np_utils import convert_kernel
from text_classifier import keras_text_classifier
import sys
 
def th2tf( model):
  import tensorflow as tf
  ops = []
  for layer in model.layers:
    if layer.__class__.__name__ in ['Convolution1D', 'Convolution2D']:
      original_w = K.get_value(layer.W)
      converted_w = convert_kernel(original_w)
      ops.append(tf.assign(layer.W, converted_w).op)
  K.get_session().run(ops)
  return model
 
def tf2th(model):
  for layer in model.layers:
    if layer.__class__.__name__ in ['Convolution1D', 'Convolution2D']:
      original_w = K.get_value(layer.W)
      converted_w = convert_kernel(original_w)
      K.set_value(layer.W, converted_w)
  return model
 
def conv_layer_converted(tf_weights, th_weights, m = 0):
  """
  :param tf_weights:
  :param th_weights:
  :param m: 0-tf2th, 1-th2tf
  :return:
  """
  if m == 0: # tf2th
    tc = keras_text_classifier(weights_path=tf_weights)
    model = tc.loadmodel()
    model = tf2th(model)
    model.save_weights(th_weights)
  elif m == 1: # th2tf
    tc = keras_text_classifier(weights_path=th_weights)
    model = tc.loadmodel()
    model = th2tf(model)
    model.save_weights(tf_weights)
  else:
    print("0-tf2th, 1-th2tf")
    return
if __name__ == '__main__':
  if len(sys.argv) < 4:
    print("python tf_weights th_weights <0|1>\n0-tensorflow to theano\n1-theano to tensorflow")
    sys.exit(0)
  tf_weights = sys.argv[1]
  th_weights = sys.argv[2]
  m = int(sys.argv[3])
  conv_layer_converted(tf_weights, th_weights, m)

补充知识:keras学习之修改底层为TensorFlow还是theano

我们知道,keras的底层是TensorFlow或者theano

要知道我们是用的哪个为底层,只需要import keras即可显示

修改方法:

打开

keras实现theano和tensorflow训练的模型相互转换

修改

keras实现theano和tensorflow训练的模型相互转换

以上这篇keras实现theano和tensorflow训练的模型相互转换就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python获取脚本所在目录的正确方法
Apr 15 Python
python中readline判断文件读取结束的方法
Nov 08 Python
python使用PyGame模块播放声音的方法
May 20 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
Dec 14 Python
python指定写入文件时的编码格式方法
Jun 07 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
Python文件常见操作实例分析【读写、遍历】
Dec 10 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
python3实现mysql导出excel的方法
Jul 31 Python
使用python的pyplot绘制函数实例
Feb 13 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
Nov 30 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 #Python
python中怎么表示空值
Jun 19 #Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 #Python
使用OpenCV对车道进行实时检测的实现示例代码
Jun 19 #Python
为什么python比较流行
Jun 19 #Python
查看keras的默认backend实现方式
Jun 19 #Python
Python图像阈值化处理及算法比对实例解析
Jun 19 #Python
You might like
如何使用PHP获取网络上文件
2006/10/09 PHP
在WIN98下以apache模块方式安装php
2006/10/09 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
vue的mixins属性详解
2018/03/14 Javascript
详解JavaScript实现动态的轮播图效果
2019/04/29 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
Python对List中的元素排序的方法
2018/04/01 Python
Python3.5局部变量与全局变量作用域实例分析
2019/04/30 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
Python中使用gflags实例及原理解析
2019/12/13 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
Pygame的程序开始示例代码
2020/05/07 Python
Python如何实现的二分查找算法
2020/05/27 Python
Python 可视化神器Plotly详解
2020/12/26 Python
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
自动化专业个人求职信范文
2013/12/30 职场文书
实习心得体会
2014/01/02 职场文书
电视购物广告词
2014/03/19 职场文书
宣传标语大全
2014/07/01 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
新店开张活动方案
2014/08/24 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
MySql分区类型及创建分区的方法
2022/04/13 MySQL