我正在尝试使用TensorFlow构建一个CIFAR - 100的线性分类器。我从Martin Gorner的MNIST教程中获得了代码并稍作改动。当我运行此代码时,tensorflow不进行训练(代码正在运行但精度仍为1.0且丢失(交叉熵保持为4605.17),我不知道出了什么问题,我实际上是TF的新手,任何帮助都表示赞赏。
In [65]: %timeit strided_einsum(df)
10 loops, best of 3: 61.5 ms per loop
In [66]: %timeit strided_einsum_unif_filter(df)
10 loops, best of 3: 49.4 ms per loop

答案 0 :(得分:0)
在训练过程完成后,您可以计算一百次准确度。没有什么会改变。您应该将print('accuracy:'....)
放在执行反向传播的for循环中:
for i in range(500):
# the backpropagation training step
t, Loss = sess.run([train_step, cross_entropy], feed_dict={X: Xbatches[i], Y_: Ybatches[i]})
print(Loss)
print(i)
print('accuracy:', sess.run(accuracy, feed_dict={X: XtestB[i], Y_: YtestB[i]}))
答案 1 :(得分:0)
很抱歉这篇文章证明这是一个基本错误。 我更改了以下内容;
Ytr[0:num_train, Yr[0:num_train]] = 1
Yte[0:num_test, Ye[0:num_test]] = 1
与
Ytr[range(num_train), Yr_temp[range(num_train)]] = 1
Yte[range(num_test), Ye_temp[range(num_test)]] = 1
首先让所有值为1,但我只是想要真正的第1类和其他元素0.感谢您的时间。