查看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下rrdtool模块的基本使用方法
Nov 13 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 Python
基于循环神经网络(RNN)的古诗生成器
Mar 26 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
Apr 26 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
Centos下实现安装Python3.6和Python2共存
Aug 15 Python
Python构建图像分类识别器的方法
Jan 12 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
pytorch 共享参数的示例
Aug 17 Python
Python实现仿射密码的思路详解
Apr 23 Python
CentOS 7如何实现定时执行python脚本
Jun 24 Python
Python实现王者荣耀自动刷金币的完整步骤
Jan 22 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验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
Yii2实现自定义独立验证器的方法
2017/05/05 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
javascript用户注册提示效果的简单实例
2013/08/17 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
2015/01/07 Javascript
JSON相关知识汇总
2015/07/03 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
jquery悬浮提示框完整实例
2016/01/13 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
vue.js 实现输入框动态添加功能
2018/06/25 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
Python Pandas找到缺失值的位置方法
2018/04/12 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
财务分析个人的自荐书范文
2013/11/24 职场文书
办公室文员工作自我评价
2013/12/01 职场文书
个人总结与自我评价
2014/09/18 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
公司年会开场白
2015/06/01 职场文书
CSS完成视差滚动效果
2021/04/27 HTML / CSS
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js
python turtle绘图
2022/05/04 Python