查看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中的pprint折腾记
Jan 21 Python
Python聚类算法之基本K均值实例详解
Nov 20 Python
Python文件操作基本流程代码实例
Dec 11 Python
python 输入一个数n,求n个数求乘或求和的实例
Nov 13 Python
浅谈Python反射 & 单例模式
Mar 21 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
Python实现代码块儿折叠
Apr 15 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
AI:如何训练机器学习的模型
Apr 16 Python
用Python实现Newton插值法
Apr 17 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
模仿OSO的论坛(五)
2006/10/09 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
js url传值中文乱码之解决之道
2009/11/20 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
关于安全的演讲稿
2014/05/09 职场文书
党的群众路线教育实践活动个人整改措施范文
2014/11/04 职场文书
如何撰写促销方案?
2019/07/05 职场文书
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/04/22 无线电
python面向对象版学生信息管理系统
2021/06/24 Python
Pandas数据结构之Series的使用
2022/03/31 Python