Project

General

Profile

Bug #18713 » tf-mnist-tutorial.py

Peter Amstutz, 02/03/2022 08:25 PM

 
import sys
import numpy
import tensorflow as tf

####
import subprocess
subprocess.run("nvidia-smi")
subprocess.run(["find", "/dev"])
print(tf.config.list_physical_devices())

###

# Based on TensorFlow 2 quickstart for beginners
# https://www.tensorflow.org/tutorials/quickstart/beginner

print("TensorFlow version:", tf.__version__)

with numpy.load(sys.argv[1], allow_pickle=True) as f: # pylint: disable=unexpected-keyword-arg
x_train, y_train = f['x_train'], f['y_train']
x_test, y_test = f['x_test'], f['y_test']

x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10)
])

predictions = model(x_train[:1]).numpy()
print(predictions)

print(tf.nn.softmax(predictions).numpy())

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

print(loss_fn(y_train[:1], predictions).numpy())

model.compile(optimizer='adam',
loss=loss_fn,
metrics=['accuracy'])

print(model.fit(x_train, y_train, epochs=5))

print(model.evaluate(x_test, y_test, verbose=2))

probability_model = tf.keras.Sequential([
model,
tf.keras.layers.Softmax()
])

print(probability_model(x_test[:5]))
(1-1/2)