Пожалуйста, обратитесь к рабочему коду Build tf.estimator.DNNClassifier из набора данных Mnist.
import tensorflow as tf
import numpy as np
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
learn = tf.contrib.learn
tf.logging.set_verbosity(tf.logging.ERROR)
print(tf.__version__)
##import the dataset
mnist = learn.datasets.load_dataset('mnist')
data = mnist.train.images
labels = np.asarray(mnist.train.labels, dtype=np.int32)
test_data = mnist.test.images
test_labels = np.asarray(mnist.test.labels, dtype = np.int32)
def input(dataset):
return dataset.images, dataset.labels.astype(np.int32)
# Specify feature
feature_columns = [tf.feature_column.numeric_column(""x"", shape=[28, 28])]
# Build 2 layer DNN classifier
classifier = tf.estimator.DNNClassifier(
feature_columns=feature_columns,
hidden_units=[256, 32],
optimizer=tf.train.AdamOptimizer(1e-4),
n_classes=10,
dropout=0.1,
model_dir=""./tmp/mnist_model""
)
# Define the training inputs
train_input_fn = tf.estimator.inputs.numpy_input_fn(
x={""x"": input(mnist.train)[0]},
y=input(mnist.train)[1],
num_epochs=None,
batch_size=50,
shuffle=True
)
classifier.train(input_fn=train_input_fn, steps=100)
# Evaluate accuracy
accuracy_score = classifier.evaluate(input_fn=train_input_fn)[""accuracy""]
print(""\nTrain Accuracy: {0:f}%\n"".format(accuracy_score*100))
# Define the test inputs
test_input_fn = tf.estimator.inputs.numpy_input_fn(
x={""x"": input(mnist.test)[0]},
y=input(mnist.test)[1],
num_epochs=1,
shuffle=False
)
# Evaluate accuracy
accuracy_score = classifier.evaluate(input_fn=test_input_fn)[""accuracy""]
print(""\nTest Accuracy: {0:f}%\n"".format(accuracy_score*100))"