查看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简单程序读取串口信息的方法
Mar 13 Python
python3+PyQt5使用数据库窗口视图
Apr 24 Python
Python的iOS自动化打包实例代码
Nov 22 Python
Python分布式进程中你会遇到的问题解析
May 28 Python
解决python web项目意外关闭,但占用端口的问题
Dec 17 Python
Python tkinter三种布局实例详解
Jan 06 Python
NumPy统计函数的实现方法
Jan 21 Python
python 递归调用返回None的问题及解决方法
Mar 16 Python
Python实现AI换脸功能
Apr 10 Python
Python如何生成xml文件
Jun 04 Python
python定义类的简单用法
Jul 24 Python
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
May 31 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重定向的3种方式
2013/03/07 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
python re正则表达式模块(Regular Expression)
2014/07/16 Python
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
Python之str操作方法(详解)
2017/06/19 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
2018/09/17 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
父亲的菜园教学反思
2014/02/13 职场文书
安全生产专项整治方案
2014/05/06 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
运动会加油稿
2015/07/22 职场文书
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
React 高阶组件HOC用法归纳
2021/06/13 Javascript
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers