解决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实例一个类背后发生了什么
Feb 09 Python
详解python3中zipfile模块用法
Jun 18 Python
windows下python安装小白入门教程
Sep 18 Python
在Python中分别打印列表中的每一个元素方法
Nov 07 Python
opencv与numpy的图像基本操作
Mar 08 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
Aug 08 Python
Python 3.8正式发布重要新功能一览
Oct 17 Python
python requests包的request()函数中的参数-params和data的区别介绍
May 05 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
Jul 07 Python
Python 高级库15 个让新手爱不释手(推荐)
May 15 Python
python常见的占位符总结及用法
Jul 02 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中实现图片的锐化
2006/10/09 PHP
php Mysql日期和时间函数集合
2007/11/16 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
php页面缓存方法小结
2015/01/10 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
用JS剩余字数计算的代码
2008/07/03 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
JavaScript cookie详解及简单实例应用
2016/12/31 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
Python从零开始创建区块链
2018/03/06 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
Python调用飞书发送消息的示例
2020/11/10 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
部队学习十八大感言
2014/01/11 职场文书
网上开商店的创业计划书
2014/01/19 职场文书
审计主管岗位职责
2014/01/31 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
学习十八大演讲稿
2014/09/15 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
nginx 配置指令之location使用详解
2022/05/25 Servers