【发布时间】:2018-02-19 13:51:17
【问题描述】:
我正在尝试使用 Tensorflow 运行 MNIST 数据集。这是我的代码
import tensorflow as tf
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
X_train = np.array(mnist.train.images, 'float')
X_test = np.array(mnist.test.images, 'float')
y_train = np.array(mnist.train.images, 'int32')
y_test = np.array(mnist.test.images, 'int32')
# Specify feature
feature_columns = [tf.contrib.layers.real_valued_column('', dimension=784)]
# Build 3 layer DNN with 10, 20, 10 units respectively.
classifier = tf.contrib.learn.DNNClassifier(feature_columns=feature_columns,
hidden_units=[200, 100, 60, 30],
n_classes=10,
model_dir="./output"
)
# Fit model.
classifier.fit(X_train, y_train, batch_size=100, steps=1000)
# Evaluate accuracy.
accuracy_score = classifier.evaluate(X_test, y_test)["accuracy"]
print('Accuracy: {0:f}'.format(accuracy_score))
但是,我不断收到错误消息:
ValueError: 无法挤压 dim[1],预期维度为 1,得到 784 对于“dnn/multi_class_head/softmax_cross_entropy_loss/Squeeze”(操作: 'Squeeze') 输入形状:[?,784]。
回溯让我注意到第 31 行,这是我在分类器上调用 fit() 的地方,但我不知道为什么。
【问题讨论】:
-
需要指出的一点:标签 (y_xxxx) 应该在 mnist.[train|test].labels 中,而不是 mnist.[train|test].images 中
-
谢谢。这是我在尝试不同的事情时犯的复制和粘贴错误。我已经更正了,但它仍然没有解决错误......但是,我现在得到一个稍微不同的错误,说预期 1,得到 10。
标签: python tensorflow mnist