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
Tensorflow:损耗减少,但精度稳定_Tensorflow_Neural Network_Deep Learning_Conv Neural Network_Convolution - Fatal编程技术网

Tensorflow:损耗减少,但精度稳定

Tensorflow:损耗减少,但精度稳定,tensorflow,neural-network,deep-learning,conv-neural-network,convolution,Tensorflow,Neural Network,Deep Learning,Conv Neural Network,Convolution,我的团队正在Tensorflow培训一名CNN,对受损/可接受零件进行二元分类。我们通过修改cifar10示例代码来创建代码。在我以前使用神经网络的经验中,我一直在训练,直到损失非常接近0(远低于1)。然而,我们现在正在使用训练期间的验证集(在单独的GPU上)评估我们的模型,在大约6.7k步之后,精度似乎停止增加,而在超过40k步之后,损失仍在稳步下降。这是因为安装过度吗?一旦损失非常接近于零,我们是否应该期望在准确度上看到另一个峰值?当前最大精度不可接受。我们应该杀了它并继续调谐吗?你推荐什么

我的团队正在Tensorflow培训一名CNN,对受损/可接受零件进行二元分类。我们通过修改cifar10示例代码来创建代码。在我以前使用神经网络的经验中,我一直在训练,直到损失非常接近0(远低于1)。然而,我们现在正在使用训练期间的验证集(在单独的GPU上)评估我们的模型,在大约6.7k步之后,精度似乎停止增加,而在超过40k步之后,损失仍在稳步下降。这是因为安装过度吗?一旦损失非常接近于零,我们是否应该期望在准确度上看到另一个峰值?当前最大精度不可接受。我们应该杀了它并继续调谐吗?你推荐什么?这是我们修改过的代码和培训过程的图表


以下是我的建议,其中一个可能的问题是你的网络开始记忆数据,是的,你应该增加正则化

更新: 这里我想再提一个可能导致这种情况的问题:
验证集中的平衡比率与训练集中的平衡比率相差很远。我建议,在第一步,试着理解你的测试数据(真实世界的数据,你的模型在推理时将面对的数据)是什么样的描述性的,它的平衡比率是什么,以及其他类似的特征。然后尝试用与实际数据几乎相同的描述来构建这样的训练/验证集。

二进制交叉熵损失的减少并不意味着准确性的提高。考虑标签1、预测0.2、0.4和0.6在时间步长1, 2, 3和分类阈值0.5。时间步1和2将减少损失,但不会提高精度

通过过度拟合训练数据,确保您的模型具有足够的容量。如果模型过度拟合训练数据,请使用正则化技术(如退出、L1和L2正则化以及数据增强)避免过度拟合


最后,确认您的验证数据和培训数据来自同一发行版。

您认为添加更多层或退出层会有帮助吗?如果没有意义,请先应用退出层,然后添加更多层和退出层。同时尽量减少你的滤镜尺寸,增加频道。我们的图像只有一个频道(黑白)。你能解释更多关于增加频道的情况吗?另外,您认为更改过滤器的数量也会提高精度吗?目前是256。网络参数中的每个配置都是通过尝试和错误来实现的,没有人可以说更改过滤器或图层或任何可以改善结果的东西,你应该尝试所有可能的方法来达到你的目标精度,在尝试在全黑图像上找到一个NN后得出答案,共有3个类。分类器学习使所有类的概率为33%LOL。因此损失从7减少到1,但准确率保持33%!