Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tensorflow:经过50次训练后,resnet-56的学习率达到饱和,但测试精度仍然不令人满意_Python_Tensorflow_Deep Learning_Resnet - Fatal编程技术网

Python Tensorflow:经过50次训练后,resnet-56的学习率达到饱和,但测试精度仍然不令人满意

Python Tensorflow:经过50次训练后,resnet-56的学习率达到饱和,但测试精度仍然不令人满意,python,tensorflow,deep-learning,resnet,Python,Tensorflow,Deep Learning,Resnet,我建立了一个56层的残差网络来训练用于图像分类的CIFAR-10数据集。虽然这是最先进的网络体系结构,但在10个阶段的训练中,我得到了79%的模型测试准确率 培训数据集大小为49000,验证数据集大小为1000。我将模型分为20个阶段进行训练,最小批量为128个。学习率为1e-3。我使用Xavier初始化和RMProp进行梯度下降 请参阅此处以了解我的实现。 结果如下 我试图将学习率降低到1e-4,同时测试精度也降低了。我试着把训练次数增加到15次。精度提高如下 我将训练次数增加到50次,

我建立了一个56层的残差网络来训练用于图像分类的CIFAR-10数据集。虽然这是最先进的网络体系结构,但在10个阶段的训练中,我得到了79%的模型测试准确率

培训数据集大小为49000,验证数据集大小为1000。我将模型分为20个阶段进行训练,最小批量为128个。学习率为1e-3。我使用Xavier初始化和RMProp进行梯度下降

请参阅此处以了解我的实现。

结果如下

我试图将学习率降低到1e-4,同时测试精度也降低了。我试着把训练次数增加到15次。精度提高如下

我将训练次数增加到50次,测试准确率达到85%


增加训练次数现在似乎不起作用。有什么值得我尝试的吗?

这里有很多可能的选择供您选择;您目前面临的通常被称为“超参数优化”,它本身就是一个完整的研究领域

基本上,您希望以获得最佳结果的方式调整参数。首先,我建议你只需训练更长的时间(更多的时期)。 我本人从未接受过关于CIFAR-10的培训,但这可能是因为实现融合的时间要晚得多(尽管我对此表示怀疑)。此外,我建议您按照提前停止的思路实施一些措施

不要总是使用最新的模型,而是使用(即检查点)具有最高验证精度的模型,希望这是一个能够最好地概括未知数据的模型。尽管它在您的培训数据上可能没有完美的分数,但在大多数情况下,它会在实践中为您提供更好的服务。
完成整个跑步后(或在验证丢失方面没有明显改善),您可以提前取消培训程序

此外,我不确定您对剩余块的内部进行了多少操作,但您可以尝试在这里调整一些参数,如卷积大小、每个剩余块的卷积、特征数等

这里确实有很多值得注意的地方,但我假设您在架构方面基本上都是坚持的。 不幸的是,这也涉及到很多运气,因为一个好的随机初始化可能会在其他类似属性的情况下产生更好的结果(有关更多详细信息,请参阅),所以简单地选择一个不同的随机种子可能会有所帮助

最后,但并非最不重要的一点是,我建议您研究不同的优化器:一般来说,默认SGD“工作得很好”(尽管它仍然是一个很好的工具,在某些情况下可能工作得最好)。添加更高级的指标(例如最简单的指标)可能会导致更好的收敛性


大多数深入学习工具都为您提供了各种各样的优化器。一个不错的选择是Adam优化器。当然也有不同的版本,可以找到一个概览。

我将epoches从10增加到50,测试准确率达到85%。