Tensorflow不会训练CIFAR - 100数据

时间:2017-04-26 14:46:05

标签: numpy machine-learning tensorflow computer-vision classification

我正在尝试使用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




2 个答案:

答案 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.感谢您的时间。