在这个tensorflow示例中,历代是如何工作的

在这个tensorflow示例中,历代是如何工作的,tensorflow,machine-learning,neural-network,deep-learning,Tensorflow,Machine Learning,Neural Network,Deep Learning,下面是一段用于训练简单神经网络的代码 for epoch in range(hm_epochs): epoch_loss = 0 for _ in range(int(mnist.train.num_examples/batch_size)): epoch_x, epoch_y = mnist.train.next_batch(batch_size) _, c = sess.run([

下面是一段用于训练简单神经网络的代码

for epoch in range(hm_epochs):
            epoch_loss = 0
            for _ in range(int(mnist.train.num_examples/batch_size)):
                epoch_x, epoch_y = mnist.train.next_batch(batch_size)
                _, c = sess.run([optimizer, cost], feed_dict={x: epoch_x, y: epoch_y})
                epoch_loss += c

            print('Epoch', epoch, 'completed out of',hm_epochs,'loss:',epoch_loss)
这不是完整的代码,但从我看到的情况来看,内环使用所有测试数据进行训练(分成批),并使用优化算法进行优化。当内环运行一次时,算法的精度为90%,但当它运行10次(hm_epochs=10)时,95%的时间是正确的。这对我来说没有任何意义,如何使用相同的数据多次训练它(这是外循环运行时发生的情况),使其更加准确

我是tensorflow的新手

这不是我的代码,它来自以下系列:

那么你是在问为什么针对更多时代的培训会产生更好的结果?这应该是显而易见的:你训练的次数越多,优化器就越能根据训练集调整网络的权重。您对模型的训练越多,它就越适合训练数据。但如果你做得太过了,它就无法概括,因此在新数据上表现不佳。这被称为过度拟合。

所以你会问,为什么针对更多时代的训练会产生更好的结果?这应该是显而易见的:你训练的次数越多,优化器就越能根据训练集调整网络的权重。您对模型的训练越多,它就越适合训练数据。但如果你做得太过了,它就无法概括,因此在新数据上表现不佳。这被称为过度拟合。

神经网络模型仅通过样本中的一定数量的可用信息进行更新。例如,这种行为是通过学习率来调整的


想象一下转动收音机旋钮来调谐电台。首先,快速旋转以大致获得无线电台(90%),然后开始缓慢旋转以微调无线电台信号(95%)。

神经网络模型仅通过样本中的特定可用信息进行更新。例如,这种行为是通过学习率来调整的

想象一下转动收音机旋钮来调谐电台。首先你把它转得很快,大致可以看到广播电台(90%),然后你开始慢慢转来微调广播电台信号(95%)