今天在测试卷积训练程序的时候偶遇到这样的一个错误:
通过执行的细节我可以发现运行卡在了get_loss这个函数里,而关键在于y 与 y_的张量维度不一致导致的。其中一个是测试训练出来的结果张量,一个是标准答案张量。
究竟是怎么回事呢?我在网上搜索了一番后发现是交叉熵函数的使用有问题
书上的是:sparse_softmax_croos_entropy_with_logits
该函数要求的是labels的维度应该比logist的维度少一维,但是我这里没有所以报错。
更改呢》因为代码比较冗余,所以没有更改维度,而是发现了一个要求比较宽松的交叉熵函数:
softmax_croos_entropy_with_logits
对,你没有看错,去掉那个sparse之后就没有问题了
程序就可以运行了。但是你们会发现为啥会loss突然增加这么多呢?
后来发现是我的学习率设置的过大0.8,而发生了梯度的变化巨大,使得结果非常不理想。最后想学习率改为0.001之后,和hi嘿嘿IE,看看成果:
单个GPU运行的速度还是比CPU快哦。
后面我们来试试对数据集的预处理再传入训练函数。