我想问一下我到目前为止训练过的训练模型,即它是不是趋向于准确性?
Posted
技术标签:
【中文标题】我想问一下我到目前为止训练过的训练模型,即它是不是趋向于准确性?【英文标题】:i wanted to ask about my training model which i have trained so far i,e is it tending toward accuracy?我想问一下我到目前为止训练过的训练模型,即它是否趋向于准确性? 【发布时间】:2020-01-03 02:36:16 【问题描述】:我是深度学习的新手,想了解有关 tensorboard 的 epoch 准确度。我已经训练了一个深度学习模型,其中包含 400 个图像,每个图像大约 960x1280 像素,并且我已经在 tensorboard 上对其进行了可视化。谁能帮助我,告诉我纪元准确度是什么意思,在我的情况下,它在图片中是否足够好,或者我应该做些什么来匹配训练和验证准确度?
图片如下:
【问题讨论】:
【参考方案1】:虽然Uzzal Podder's answer 是正确的,但我认为在您的代码中,epoch _acc 很可能代表了完成一个完整时期训练后模型的准确性。
一个epoch通常表示对训练数据集的完整迭代。因此,对于您的数据集,这意味着对 400 张图像进行完整的训练周期。
如果此假设正确,则 epoch_acc 将反映您的训练准确性。要获得测试准确度,您可能需要使用经过训练的模型来评估 holdout set of data。
缩小 CNN 训练和测试精度之间差距的方法已在本网站上多次回答,我建议先查看这些答案。
【讨论】:
【参考方案2】:标题 epoch_acc
取决于您的代码。
如果您使用任何预定义模型(例如,keras ResNet50 或来自 github 的现成模型),那么代码中的某处会提到 epoch_acc 标题。
在您的描述中没有提供源代码。此外,尚不清楚您使用的是哪个 tensorflow api(tensorflow core 或 keras 支持的 tensorflow)。很难说出epoch_acc
的含义。
这里epoch_acc
可能是关于增量纪元数的总准确度。我的意思是,Y 轴是 accuracy 而 X 轴是简单的epoch count (多少次您正在重复整个火车数据集。)
但是,请让我举个例子,请看这段代码。
准确度指标title 将是 softmax_out_acc
和 ring_loss_acc
如果我使用 -
model.compile(loss = 'softmax_out' : 'categorical_crossentropy',
'ring_loss' : identity_loss,
metrics = ['accuracy'],
... )
32/32 [==============================] - 116s 4s/step - loss: 3.1720 - softmax_out_loss: 0.8834 - ring_loss_loss: 22.8862 - softmax_out_acc: 0.5391 - ring_loss_acc: 0.0000e+00 - val_loss: 3.1074 - val_softmax_out_loss: 0.9071 - val_ring_loss_loss: 22.0037 - val_softmax_out_acc: 0.4590 - val_ring_loss_acc: 0.0000e+00
或者,如果您在张量板编写器like this: 的tf.summary.scalar
中使用cross_entropy
string
with tf.name_scope('cross_entropy'):
with tf.name_scope('total'):
cross_entropy = tf.losses.sparse_softmax_cross_entropy(labels=y_, logits=y)
tf.summary.scalar('cross_entropy', cross_entropy)
输出将如下所示
所以,在深度学习中没有明确定义 epoch_acc
,或者 epoch_acc
不是标准指标,这完全取决于您的代码。
【讨论】:
以上是关于我想问一下我到目前为止训练过的训练模型,即它是不是趋向于准确性?的主要内容,如果未能解决你的问题,请参考以下文章