import tensorflow as tf import numpy as np print(tf.__version__) tf.enable_eager_execution() if tf.executing_eagerly(): print('eager beaver') x = [[2.]] m = tf.matmul(x, x) # print('hello, {}'.format(m)) # formatted string literals look weird print(f'hello, {m}') # get muh data (train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data() # it has to be as a dictionary def train_input_fn(images, labels, batch_size): # images=dict(images) dataset = tf.data.Dataset.from_tensor_slices(( dict(tf.cast(images / 255, tf.float32)), tf.cast(labels, tf.int64) )) dataset = dataset.shuffle(100000).repeat().batch(batch_size) return dataset # train_input_fn(train_images, train_labels, 100) # rather than providing the raw data directly, we need to provide a function that returns the data # train_input_fn = tf.estimator.inputs.numpy_input_fn( # x={'x': np.array(data.x_train)}, # y=np.array(data.y_train_cls), # num_epochs=None, # shuffle=True # ) # # test_input_fn = tf.estimator.inputs.numpy_input_fn( # x={'x': np.array(data.x_test)}, # y=np.array(data.y_test_cls), # num_epochs=1, # shuffle=False # ) # build muh feature_column my_feature_columns = [tf.feature_column.numeric_column('x', shape=[28, 28])] # Spec a classifier classifier = tf.estimator.DNNClassifier( feature_columns=my_feature_columns, hidden_units=[256, 32], optimizer=tf.train.AdamOptimizer(1e-4), n_classes=10, dropout=0.1, model_dir="./tmp/eager_mnist" ) classifier.train( input_fn=lambda: train_input_fn(train_images, train_labels, 100), steps=2000) #cust_train_input_fn = lambda: train_input_fn(mnist_train_images, mnist_train_labels, batch_size=64) # # generate testing function # test_input_function = tf.estimator.inputs.numpy_input_fn( # x={'x': input(mnist.test)[0]}, # y=input(mnist.test)[1], # num_epochs=1, # shuffle=False # ) # how shall we evaluate our training? # accuracy_score = classifier.evaluate(input_fn=test_input_function) # ['accuracy'] # print(f'\nTest Accuracy: {accuracy_score*100}')