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面向对象编程中类的继承
Jun 17 Python
详解Python中表达式i += x与i = i + x是否等价
Feb 08 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
Jun 25 Python
简单了解Python3里的一些新特性
Jul 13 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
Python SMTP配置参数并发送邮件
Jun 16 Python
Python如何获取文件路径/目录
Sep 22 Python
python中实现栈的三种方法
Dec 19 Python
python3 hdf5文件 遍历代码
May 19 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 在文件指定行插入数据的代码
2010/05/08 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
利用PHP实现开心消消乐的算法示例
2017/10/12 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
2011/10/01 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
JavaScript的字符串方法汇总
2016/07/31 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
js实现左右轮播图
2020/01/09 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
详解Vue.js 响应接口
2020/07/04 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
Python Requests模拟登录实现图书馆座位自动预约
2018/04/27 Python
python递归函数绘制分形树的方法
2018/06/22 Python
mac下如何将python2.7改为python3
2018/07/13 Python
Python将文本去空格并保存到txt文件中的实例
2018/07/24 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
浅析使用Python搭建http服务器
2019/10/27 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
受欢迎的大学生自我评价
2013/12/05 职场文书
美术毕业生求职信
2014/02/25 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
文明倡议书
2015/01/19 职场文书
领导参观欢迎词
2015/01/26 职场文书
赢在执行观后感
2015/06/16 职场文书
如何在python中实现ECDSA你知道吗
2021/11/23 Python