解决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批量下载图片的三种方法
Apr 22 Python
Python重新引入被覆盖的自带function
Jul 16 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
Python3.4编程实现简单抓取爬虫功能示例
Sep 14 Python
pycharm重置设置,恢复默认设置的方法
Oct 22 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
Python+OpenCV感兴趣区域ROI提取方法
Jan 10 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
Python实现图片批量加入水印代码实例
Nov 30 Python
利用python实现逐步回归
Feb 24 Python
基于Python实现粒子滤波效果
Dec 01 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 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权重计算方法代码分享
2014/01/09 PHP
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
如何用js控制css中的float的代码
2007/08/16 Javascript
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
js原型链原理看图说明
2012/07/07 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
mpvue跳转页面及注意事项
2018/08/03 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
Python语法分析之字符串格式化
2019/06/13 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
Python bytes string相互转换过程解析
2020/03/05 Python
jupyter notebook实现显示行号
2020/04/13 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
会计系毕业生求职信
2014/05/28 职场文书
党性教育心得体会
2014/09/03 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
五年级小学生评语
2014/12/26 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
导游词之潮音寺
2019/09/26 职场文书