Сборка tf, оценщик.DNNClassifier из tf.data.Datasets - PullRequest
0 голосов
/ 10 марта 2020

Я новичок в тензорном потоке в ML и подумал, что могу построить модель непосредственно из tf.data.Datasets. Вот мой код, не могу понять, почему он не работает. Может кто-нибудь посоветовать, пожалуйста, можно ли заставить его работать?

import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
import tensorflow_datasets as tfds

#load the data
train_data, ds_info = tfds.load('mnist', split='train'
                       , shuffle_files=True,with_info=True, as_supervised=True)

feature_columns = [tf.feature_column.numeric_column('x',shape=[28,28])]

#build the model
estimator = tf.estimator.DNNClassifier(
feature_columns=feature_columns,
hidden_units=[300,100],
n_classes=10,
model_dir='/train/DNN')

#train the model
estimator.train(input_fn=train_data)

1 Ответ

0 голосов
/ 16 марта 2020

Пожалуйста, обратитесь к рабочему коду 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))"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...