SGD的培训准确性

时间:2017-06-10 02:57:06

标签: machine-learning tensorflow deep-learning

您如何计算SGD的训练准确度?您是否使用您训练网络的批量数据来计算它?或者使用整个数据集? (对于每个批次优化迭代)

我尝试使用我训练网络的批量数据计算每次迭代的训练准确度。它几乎总能给我100%的训练准确度(有时100%,90%,80%,总是10%的倍数,但第一次迭代给了我100%)。这是因为我正在计算我为该迭代训练的相同批次数据的准确性吗?或者我的模型过度拟合,它立刻给了我100%,但验证准确性低? (这是这里的主要问题,如果这是可以接受的,或者模型有问题)

以下是我使用的超参数。

batch_size = 64
kernel_size = 60 #from 60 #optimal 2
depth = 15 #from 60 #optimal 15
num_hidden = 1000 #from 1000 #optimal 80

learning_rate = 0.0001
training_epochs = 8

total_batches = train_x.shape[0] // batch_size

1 个答案:

答案 0 :(得分:2)

在培训过程中计算批次数据的培训准确性是正确的。如果精度的数量始终是10%的倍数,则很可能是因为您的批量大小为10.例如,如果8个训练输出与标签匹配,那么您的训练准确度将为80%。如果训练准确度数字上下变化,则有两种主要可能性: 1.如果您在一个时期内多次打印出准确度数字,这是正常的,特别是在训练的早期阶段,因为该模型预测了不同的数据样本; 2.如果您在每个时期打印出准确度,并且如果您在训练后期看到训练准确性上下变化,则表示您的学习率太高。你需要在训练期间减少加班时间。 如果这些没有回答您的问题,请提供更多详细信息,以便我们提供帮助。