发新帖

求助,关于使用GPU后准确率下降的问题

[复制链接]
68 5

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
实现了一个mnist的手写数字识别模型,使用CPU训练可以达到92%准确率,使用GPU训练只有62%准确率,而且迭代数再增加准确率还会不断降低。
感到十分玄学。希望有大佬帮帮忙。。。
Antonio已获得悬赏 10 金币+5 金币

最佳答案

理论上讲真的不会,你可以那在GPU上的代码再在CPU上跑一遍试试,大概率是代码有问题,或者是训练方式不同造成是问题,涉及到优化器,学习率等
本楼点评(0) 收起

精彩评论5

ViolinSolo  TF芽芽  发表于 7 天前 | 显示全部楼层
理论上不会的。。。。而且理论上用gpu还会训练的变快。。。你是不是代码哪里也错了 po出来看看?
本楼点评(0) 收起
Antonio  TF荚荚  发表于 7 天前 | 显示全部楼层
理论上讲真的不会,你可以那在GPU上的代码再在CPU上跑一遍试试,大概率是代码有问题,或者是训练方式不同造成是问题,涉及到优化器,学习率等
本楼点评(3) 收起
  • hikaruzzz你好,刚刚下了几个别人的demo跑了下,发现如果用SGD优化器就会出现GPU和CPU收敛速度不同的情况。同样的代码,GPU上1000echo就能90%准确率,CPU上同样echo只有个位数准确率,这个不知道是不是优化器本身的问题呢?如果是的话那平时写代码时是否就要考虑到不同设备的情况了呢?
    2018-12-5 19:05 回复
  • Antonio回复 hikaruzzz :只要模型相同,使用的训练参数相同,不同的设备甚至不同的电脑,跑出来的结果应该都是相同的,或者说非常接近,因为优化过程是随机难以完全复线。参数相同的情况下,收敛速度不同是由于不同的设备计算速度不同导致的。至于你谈到的CPU上同样echo只有个位数准确率这个问题你想一下,只有10个数字却只有个位数连基本的准确率都达不到只能说明一个问题,你这个模型坏了,我猜测可能是你的学习率设置的太高了,一般情况下我们的学习率从0.001开始,上下10倍的调整。还有一个问题,你训练这种小数据集就用了1K轮显然是过多了,会造成过拟合的后果。平时写代码只需要考虑GPU和CPU的情况,或者说这个也不用太在意,完全不用在意不同设备的区别
    2018-12-5 19:12 回复
  • hikaruzzz回复 Antonio :果然是学习率的问题,调到0.0001就OK了,其细节也明白。谢谢大佬啦。
    2018-12-5 19:39 回复
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

快速回复 返回顶部 返回列表