Eine Schnittstelle für die Verwendung von TensorFlow so einfach wie Scikit Learn ~~ In TensorFlow enthalten (TF Learn) ~~ Unabhängig von TensorFlow 0.9 ist es einfacher zu schreiben als die älteren unten (TFLearn).
EC2 (AWS) g2.2xlarge-Instanz (Oregon = West-USA) Python 2.7.6 TensorFlow 0.8.0 scipy 0.17.1 (erforderlich für scikit-learn) scikit-learn 0.17.1
Die AWS-Instanz wurde mit dem AMI einer anderen Person initialisiert. Wenn Sie sie jedoch selbst vorstellen möchten, lesen Sie Folgendes
Dieses Mal habe ich es als Referenz beim Aufbau eines komplizierten Netzwerks mit DCNN (Deep Convolutional Neural Network) versucht, daher denke ich, dass die Parameter angemessen und für MNIST nicht sehr geeignet sind.
mnist.py
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from sklearn import metrics
import tensorflow as tf
from tensorflow.contrib import learn as skflow
from tensorflow.contrib.learn.python.learn.datasets import mnist as source
mnist = source.load_mnist()
def max_pool_2x2(tensor_in):
return tf.nn.max_pool(tensor_in, ksize = [1, 2, 2, 1], strides = [1, 2, 2, 1], padding = 'SAME')
def my_model(X, y):
X = tf.reshape(X, [-1, 28, 28, 1])
with tf.variable_scope('layer1'):
with tf.variable_scope('conv1'):
h_conv1 = skflow.ops.conv2d(X, n_filters = 16, filter_shape = [3, 3], bias = True, activation = tf.nn.relu)
with tf.variable_scope('conv2'):
h_conv2 = skflow.ops.conv2d(h_conv1, n_filters = 32, filter_shape = [3, 3], bias = True, activation = tf.nn.relu)
h_pool1 = max_pool_2x2(h_conv2)
with tf.variable_scope('layer2'):
with tf.variable_scope('conv3'):
h_conv3 = skflow.ops.conv2d(h_pool1, n_filters = 64, filter_shape = [3, 3], bias = True, activation = tf.nn.relu)
with tf.variable_scope('conv4'):
h_conv4 = skflow.ops.conv2d(h_conv3, n_filters = 128, filter_shape = [3, 3], bias = True, activation = tf.nn.relu)
h_pool2 = max_pool_2x2(h_conv4)
h_flat = tf.reshape(h_pool2, [-1, 7 * 7 * 128])
h_fc = skflow.ops.dnn(h_flat, [1024, 1024], activation = tf.nn.relu, dropout = 0.5)
return skflow.models.logistic_regression(h_fc, y)
classifier = skflow.TensorFlowEstimator(model_fn = my_model, n_classes = 10, batch_size = 100, steps = 20000, learning_rate = 0.001, optimizer = 'Adam')
classifier.fit(mnist.train.images, mnist.train.labels)
score = metrics.accuracy_score(mnist.test.labels, classifier.predict(mnist.test.images))
print('Accuracy: {0:f}'.format(score))
skflow - mnist.py Introduction to Scikit Flow TensorFlow Python reference documentation