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