查看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之一个免费的实验室
Sep 14 Python
python实现通过pil模块对图片格式进行转换的方法
Mar 24 Python
浅谈Python中的闭包
Jul 08 Python
windows下python连接oracle数据库
Jun 07 Python
Django视图之ORM数据库查询操作API的实例
Oct 27 Python
Python编程求解二叉树中和为某一值的路径代码示例
Jan 04 Python
Django 实现下载文件功能的示例
Mar 06 Python
Python基础教程之if判断,while循环,循环嵌套
Apr 25 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
Jul 04 Python
浅析python redis的连接及相关操作
Nov 07 Python
基于python的列表list和集合set操作
Nov 24 Python
python编写五子棋游戏
May 25 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/01/07 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
node.js中的console.warn方法使用说明
2014/12/09 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
常用DOM整理
2015/06/16 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
jQuery实现查找最近父节点的方法
2016/06/23 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
在vue中使用回调函数,this调用无效的解决
2020/08/11 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
python Crypto模块的安装与使用方法
2017/12/21 Python
python基于ID3思想的决策树
2018/01/03 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
python redis存入字典序列化存储教程
2020/07/16 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
编写strcpy函数
2014/06/24 面试题
给老师的道歉信
2014/01/11 职场文书
学校万圣节活动方案
2014/02/13 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
cf搞笑广告词
2014/03/14 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
公积金贷款承诺书
2015/04/30 职场文书
高中生物教学反思
2016/02/20 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis