查看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实现linux服务器批量修改密码并生成execl
Apr 22 Python
简单说明Python中的装饰器的用法
Apr 24 Python
Python3实现的画图及加载图片动画效果示例
Jan 19 Python
Python交互环境下实现输入代码
Jun 22 Python
python实现从pdf文件中提取文本,并自动翻译的方法
Nov 28 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
Python代码实现http/https代理服务器的脚本
Aug 12 Python
使用Python调取任意数字资产钱包余额功能
Aug 15 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
Nov 07 Python
Pymysql实现往表中插入数据过程解析
Jun 02 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 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
php数组删除元素示例
2014/03/21 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
显示js对象所有属性和方法的函数
2009/10/16 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
pymongo实现多结果进行多列排序的方法
2015/05/16 Python
python僵尸进程产生的原因
2017/07/21 Python
Scrapy的简单使用教程
2017/10/24 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Python拆分大型CSV文件代码实例
2019/10/07 Python
python 画条形图(柱状图)实例
2020/04/24 Python
2014年稽查工作总结
2014/12/20 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
python非标准时间的转换
2021/07/25 Python
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技