`
wx1569488408
  • 浏览: 75242 次
文章分类
社区版块
存档分类
最新评论

博客九--交叉熵函数的变革

 
阅读更多

今天在测试卷积训练程序的时候偶遇到这样的一个错误:

9470f826de0b017cb09d374c9e221f6fa7a.jpg

通过执行的细节我可以发现运行卡在了get_loss这个函数里,而关键在于y 与 y_的张量维度不一致导致的。其中一个是测试训练出来的结果张量,一个是标准答案张量。

究竟是怎么回事呢?我在网上搜索了一番后发现是交叉熵函数的使用有问题

书上的是:a0d2d4fb21750652f5724dcc0c8b5e275e3.jpgsparse_softmax_croos_entropy_with_logits

该函数要求的是labels的维度应该比logist的维度少一维,但是我这里没有所以报错。

更改呢》因为代码比较冗余,所以没有更改维度,而是发现了一个要求比较宽松的交叉熵函数:

softmax_croos_entropy_with_logits

对,你没有看错,去掉那个sparse之后就没有问题了

b0f75e58ce1895c3e1a01a0952a45e801ed.jpg

程序就可以运行了。但是你们会发现为啥会loss突然增加这么多呢?

后来发现是我的学习率设置的过大0.8,而发生了梯度的变化巨大,使得结果非常不理想。最后想学习率改为0.001之后,和hi嘿嘿IE,看看成果:

4fa960aa8404134e0fdd9fcd821640c84db.jpg

单个GPU运行的速度还是比CPU快哦。

后面我们来试试对数据集的预处理再传入训练函数。

 

转载于:https://my.oschina.net/u/3770644/blog/3044190

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics