keras 自定义loss model.add_loss的使用详解


Posted in Python onJune 22, 2020

一点见解,不断学习,欢迎指正

1、自定义loss层作为网络一层加进model,同时该loss的输出作为网络优化的目标函数

from keras.models import Model
import keras.layers as KL
import keras.backend as K
import numpy as np
from keras.utils.vis_utils import plot_model
 
x_train=np.random.normal(1,1,(100,784))
 
x_in = KL.Input(shape=(784,))
x = x_in
x = KL.Dense(100, activation='relu')(x)
x = KL.Dense(784, activation='sigmoid')(x)
def custom_loss1(y_true,y_pred):
 return K.mean(K.abs(y_true-y_pred))
loss1=KL.Lambda(lambda x:custom_loss1(*x),name='loss1')([x,x_in])
 
model = Model(x_in, [loss1])
model.get_layer('loss1').output#取出loss
model.add_loss(loss1)#作为网络优化的目标函数
model.compile(optimizer='adam')
plot_model(model,to_file='model.png',show_shapes=True)
#
model.fit(x_train, None, epochs=5)

2、自定义loss,作为网络优化的目标函数

x_in = KL.Input(shape=(784,))
x = x_in
x = KL.Dense(100, activation='relu')(x)
x = KL.Dense(784, activation='sigmoid')(x)
 
model = Model(x_in, x)
loss = K.mean((x - x_in)**2)
model.add_loss(loss)#只是作为loss优化目标函数
model.compile(optimizer='adam')
plot_model(model,to_file='model.png',show_shapes=True)
model.fit(x_train, None, epochs=5)

补充知识:keras load_weights fine-tune

分享一个小技巧,就是在构建网络模型的时候,不要怕麻烦,给每一层都定义一个名字,这样在复用之前的参数权重的时候,除了官网给的先加载权重,再冻结权重之外,你可以通过简单的修改层的名字来达到加载之前训练的权重的目的,假设权重文件保存为model_pretrain.h5 ,重新使用的时候,我把想要复用的层的名字设置成一样的,然后

model.load_weights('model_pretrain.h5', by_name=True)

以上这篇keras 自定义loss model.add_loss的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python输出指定月份日历的方法
Apr 23 Python
Python实现约瑟夫环问题的方法
May 03 Python
python实现日常记账本小程序
Mar 10 Python
Python检测网络延迟的代码
May 15 Python
python实现字符串和字典的转换
Sep 29 Python
Python读写文件基础知识点
Jun 10 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
Python银行系统实战源码
Oct 25 Python
Django使用Celery加redis执行异步任务的实例内容
Feb 20 Python
Python中的sys.stdout.write实现打印刷新功能
Feb 21 Python
python生成大写32位uuid代码
Mar 03 Python
Python关于OS文件目录处理的实例分享
May 23 Python
Python项目跨域问题解决方案
Jun 22 #Python
python os模块在系统管理中的应用
Jun 22 #Python
解决tensorflow读取本地MNITS_data失败的原因
Jun 22 #Python
python实现猜数游戏(保存游戏记录)
Jun 22 #Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
Jun 22 #Python
在Mac中配置Python虚拟环境过程解析
Jun 22 #Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
Jun 22 #Python
You might like
php读取文件内容的方法汇总
2015/01/24 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
js实现键盘Enter键提交表单的方法
2015/05/27 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
python 获取网页编码方式实现代码
2017/03/11 Python
浅析python递归函数和河内塔问题
2017/04/18 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
css3实现超炫风车特效
2014/11/12 HTML / CSS
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
银行委托书范本
2014/04/04 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
高中毕业典礼演讲稿
2014/09/09 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
大学生创业计划书怎么写
2014/09/15 职场文书
资产运营委托书范本
2014/10/16 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
php去除deprecated的实例方法
2021/11/17 PHP