查看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 30 Python
用Python编写一个简单的Lisp解释器的教程
Apr 03 Python
Python中List.index()方法的使用教程
May 20 Python
python逆向入门教程
Jan 15 Python
python实现多线程网页下载器
Apr 15 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 Python
详解python中的装饰器
Jul 10 Python
python抖音表白程序源代码
Apr 07 Python
django将数组传递给前台模板的方法
Aug 06 Python
.dcm格式文件软件读取及python处理详解
Jan 16 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
Feb 23 Python
python如何随机生成高强度密码
Aug 19 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/05/09 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
PHP APP微信提现接口代码
2018/09/30 PHP
JQuery之focus函数使用介绍
2013/08/20 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
跟混乱的页面弹窗说再见
2019/04/11 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
Python threading多线程编程实例
2014/09/18 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
英国航空官网:British Airways
2016/09/11 全球购物
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
培训楼经理岗位责任制
2014/02/10 职场文书
门前三包责任书
2014/04/15 职场文书
三下乡个人总结
2015/03/04 职场文书
2016圣诞节贺卡寄语
2015/12/07 职场文书