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使用socket远程连接错误处理方法
Apr 29 Python
python实现基本进制转换的方法
Jul 11 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 Python
Python如何实现MySQL实例初始化详解
Nov 06 Python
Python数据结构之顺序表的实现代码示例
Nov 15 Python
Python+PIL实现支付宝AR红包
Feb 09 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 Python
使用python批量转换文件编码为UTF-8的实现
Apr 03 Python
基于python实现操作redis及消息队列
Aug 27 Python
Python+unittest+requests+excel实现接口自动化测试框架
Dec 23 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
session 加入redis的实现代码
2016/07/15 PHP
JsDom 编程小结
2011/08/09 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
2016/05/05 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
基于JS实现checkbox全选功能实例代码
2016/10/31 Javascript
js实现密码强度检验
2017/01/15 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
Python实现115网盘自动下载的方法
2014/09/30 Python
Python实现简单的语音识别系统
2017/12/13 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
介绍一下mysql的日期和时间函数
2013/03/28 面试题
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
房屋公证委托书
2014/04/03 职场文书
学生会主席演讲稿
2014/04/25 职场文书
演讲稿开场白台词
2014/08/25 职场文书
运动会开幕词
2015/01/28 职场文书
家属联谊会致辞
2015/07/31 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS