解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题


Posted in Python onJuly 02, 2020

1、Binary Cross Entropy

常用于二分类问题,当然也可以用于多分类问题,通常需要在网络的最后一层添加sigmoid进行配合使用,其期望输出值(target)需要进行one hot编码,另外BCELoss还可以用于多分类问题Multi-label classification.

定义:

For brevity, let x = output, z = target. The binary cross entropy loss is
loss(x, z) = - sum_i (x[i] * log(z[i]) + (1 - x[i]) * log(1 - z[i]))

对应的代码为:

def binary_crossentropy(t,o):
return -(t*tf.log(o+eps) + (1.0-t)*tf.log(1.0-o+eps))

2、Categorical cross-entropy

解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题

p are the predictions, t are the targets, i denotes the data point and j denotes the class.

适用于多分类问题,并使用softmax作为输出层的激活函数的情况。

补充知识:训练GAN的一些小贴士

下面是我认识到自己犯过的一些错误,以及我从中学到的一些东西。所以,如果你是GANs的新手,并没有看到在训练方面取得很大的成功,也许看看以下几个方面会有所帮助:

1、大卷积核和更多的滤波器

更大的卷积核覆盖了前一层图像中的更多像素,因此可以查看更多信息。5x5的核与CIFAR-10配合良好,在判别器中使用3x3核使判别器损耗迅速趋近于0。对于生成器,你希望在顶层的卷积层有更大的核,以保持某种平滑。在较低的层,我没有看到改变内核大小的任何主要影响。

滤波器的数量可以大量增加参数的数量,但通常需要更多的滤波器。我在几乎所有的卷积层中都使用了128个滤波器。使用较少的滤波器,特别是在生成器中,使得最终生成的图像过于模糊。因此,看起来更多的滤波器可以帮助捕获额外的信息,最终为生成的图像增加清晰度。

2、标签翻转(Generated=True, Real=False)

虽然一开始看起来很傻,但对我有用的一个主要技巧是更改标签分配。

如果你使用的是Real Images = 1,而生成的图像= 0,则使用另一种方法会有所帮助。正如我们将在后面看到的,这有助于在早期迭代中使用梯度流,并帮助使梯度流动。

3、使用有噪声的标签和软标签

这在训练判别器时是非常重要的。硬标签(1或0)几乎扼杀了早期的所有学习,导致识别器非常快地接近0损失。最后,我使用0到0.1之间的随机数表示0标签(真实图像),使用0.9到1.0之间的随机数表示1标签(生成的图像)。在训练生成器时不需要这样做。

此外,增加一些噪音的训练标签也是有帮助的。对于输入识别器的5%的图像,标签被随机翻转。比如真实的被标记为生成的,生成的被标记为真实的。

4、使用批归一化是有用的,但是需要有其他的东西也是合适的

批归一化无疑有助于最终的结果。添加批归一化后,生成的图像明显更清晰。但是,如果你错误地设置了卷积核或滤波器,或者识别器的损失很快达到0,添加批归一化可能并不能真正帮助恢复。

5、每次一个类别

为了更容易地训练GANs,确保输入数据具有相似的特征是很有用的。例如,与其在CIFAR-10的所有10个类中都训练GAN,不如选择一个类(例如,汽车或青蛙)并训练GANs从该类生成图像。DC-GAN的其他变体在学习生成多个类的图像方面做得更好。例如,以类标签为输入,生成基于类标签的图像。但是,如果你从一个普通的DC-GAN开始,最好保持事情简单。

6、查看梯度

如果可能的话,试着监控梯度以及网络中的损失。这些可以帮助你更好地了解训练的进展,甚至可以帮助你在工作不顺利的情况下进行调试。

理想情况下,生成器应该在训练的早期获得较大的梯度,因为它需要学习如何生成真实的数据。另一方面,判别器并不总是在早期获得较大的梯度,因为它可以很容易地区分真假图像。一旦生成器得到足够的训练,判别器就很难分辨真假图像。它会不断出错,并得到大的梯度。

以上这篇解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python标准库urllib2的一些使用细节总结
Mar 16 Python
使用python3.5仿微软记事本notepad
Jun 15 Python
python 数据清洗之数据合并、转换、过滤、排序
Feb 12 Python
pycharm远程调试openstack的图文教程
Nov 21 Python
取numpy数组的某几行某几列方法
Apr 03 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
详解Pycharm安装及Django安装配置指南
Sep 15 Python
python+flask编写一个简单的登录接口
Nov 13 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
Jan 28 Python
python元组拆包实现方法
Feb 28 Python
Python中使用ipython的详细教程
Jun 22 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
Jul 02 #Python
如何基于Python爬取隐秘的角落评论
Jul 02 #Python
keras中epoch,batch,loss,val_loss用法说明
Jul 02 #Python
Python使用tkinter实现摇骰子小游戏功能的代码
Jul 02 #Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 #Python
python脚本和网页有何区别
Jul 02 #Python
keras:model.compile损失函数的用法
Jul 01 #Python
You might like
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
YII实现分页的方法
2014/07/09 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
php创建类并调用的实例方法
2019/09/25 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
js获取指定日期前后的日期代码
2013/08/20 Javascript
Jquery实现控件的隐藏和显示实例
2014/02/08 Javascript
js通过iframe加载外部网页的实现代码
2015/04/05 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
vue.js与element-ui实现菜单树形结构的解决方法
2018/04/21 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
python解析xml文件操作实例
2014/10/05 Python
在Django中创建第一个静态视图
2015/07/15 Python
python 异常处理总结
2016/10/18 Python
使用Django清空数据库并重新生成
2020/04/03 Python
python中有帮助函数吗
2020/06/19 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
个人授权委托书范本格式
2014/10/12 职场文书
批评与自我批评总结
2014/10/17 职场文书
师范生小学见习总结
2015/06/23 职场文书
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers