查看keras各种网络结构各层的名字方式


Posted in Python onJune 11, 2020

举例

base_model = ResNet50(weights=‘imagenet', include_top=True)
print(base_model.summary())

得到这个结果

查看keras各种网络结构各层的名字方式

补充知识:使用keras,在load_model()时,出现NameError: name '***' is not defined

是因为在构造模型是,使用了自定义的层,如Lambda()

# 文本相似度评估方式
def exponent_neg_manhattan_distance(sent_left, sent_middle, sent_right):
  '''基于曼哈顿空间距离计算两个字符串语义空间表示相似度计算'''
  return ((K.exp(-K.sum(K.abs(sent_left - sent_middle), axis=1, keepdims=True)) - K.exp(-K.sum(K.abs(sent_left - sent_right), axis=1, keepdims=True))) + 1) / 2
 
def bilstm_siamese_model():
  '''搭建孪生网络'''
  #可以在这里调参
  embedding_layer = Embedding(VOCAB_SIZE + 1,
                EMBEDDING_DIM,
                weights=[embedding_matrix],
                input_length=MAX_LENGTH,
                trainable=True, #原本为False
                mask_zero=True)
  #输入层
  left_input = Input(shape=(MAX_LENGTH,), dtype='float32', name="left_x") #(?, 25)
  middle_input = Input(shape=(MAX_LENGTH,), dtype='float32', name="middle_x") #(?, 25)
  right_input = Input(shape=(MAX_LENGTH,), dtype='float32', name='right_x')
  #嵌入层
  encoded_left = embedding_layer(left_input) #(?, 25, 300)
  encoded_middle = embedding_layer(middle_input) #(?, 25, 300)
  encoded_right = embedding_layer(right_input)
  # print(encoded_left)
  #孪生网络
  shared_lstm = create_base_network(input_shape=(MAX_LENGTH, EMBEDDING_DIM))
  left_output = shared_lstm(encoded_left)
  middle_output = shared_lstm(encoded_middle)
  right_output = shared_lstm(encoded_right)
 
  # 文本相似度评估方式
  distance = Lambda(lambda x: exponent_neg_manhattan_distance(x[0], x[1], x[2]),output_shape=lambda x: (x[0][0], 1))([left_output, middle_output, right_output]) #第二个lambda函数的输入参数不清楚,x[0][0]
  print('distance',distance)
  model = Model([left_input, middle_input, right_input], distance)
  model.compile(loss='binary_crossentropy',
         optimizer='nadam',
         metrics=['accuracy'])
  model.summary()
  return model

虽然之前已经定义好了exponent_neg_manhattan_distance(),但是在load_model()依然会报NameError: name 'exponent_neg_manhattan_distance' is not defined

解决办法:

查看keras各种网络结构各层的名字方式

在load_model的时候,加一个custom_objects参数就可以了,即

model = load_model(model_path,custom_objects={'exponent_neg_manhattan_distance': exponent_neg_manhattan_distance}) #对自定义层一定要说明

注:用Google搜bug比用baidu搜质量会高不少。

以上这篇查看keras各种网络结构各层的名字方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python写的贪吃蛇游戏例子
Jun 16 Python
在Python中实现贪婪排名算法的教程
Apr 17 Python
在Python的Bottle框架中使用微信API的示例
Apr 23 Python
python实现线程池的方法
Jun 30 Python
pygame实现俄罗斯方块游戏(AI篇2)
Oct 29 Python
Win下PyInstaller 安装和使用教程
Dec 25 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
pandas中的数据去重处理的实现方法
Feb 10 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 Python
python支持多继承吗
Jun 19 Python
python3 使用ssh隧道连接mysql的操作
Dec 05 Python
python datetime时间格式的相互转换问题
Jun 11 #Python
完美解决keras保存好的model不能成功加载问题
Jun 11 #Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 #Python
Pyinstaller加密打包应用的示例代码
Jun 11 #Python
解决keras加入lambda层时shape的问题
Jun 11 #Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
Jun 11 #Python
keras slice layer 层实现方式
Jun 11 #Python
You might like
玩转虚拟域名◎+ .
2006/10/09 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
如何基于JavaScript判断图片是否加载完成
2019/12/28 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
基于Tensorflow一维卷积用法详解
2020/05/22 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
EJB的基本架构
2016/09/22 面试题
应届毕业生的自我鉴定
2013/11/13 职场文书