import os
|
|
import numpy as np
|
|
import tensorflow as tf
|
|
|
|
# The following switch allows the program runs locally and in the Agit environment without modifications.
|
|
if 'CLOUD_PROVIDER' in os.environ and os.environ['CLOUD_PROVIDER'] == 'Agit':
|
|
logdir = '/root/.agit'
|
|
else:
|
|
logdir = './runs'
|
|
|
|
mnist = tf.keras.datasets.mnist
|
|
(x_train, y_train),(x_test, y_test) = mnist.load_data()
|
|
x_train, x_test = x_train / 255.0, x_test / 255.0
|
|
|
|
def create_model():
|
|
return tf.keras.models.Sequential([
|
|
tf.keras.layers.Flatten(input_shape=(28, 28)),
|
|
tf.keras.layers.Dense(512, activation='relu'),
|
|
tf.keras.layers.Dropout(0.2),
|
|
tf.keras.layers.Dense(10, activation='softmax')
|
|
])
|
|
|
|
model = create_model()
|
|
model.compile(optimizer='adam',
|
|
loss='sparse_categorical_crossentropy',
|
|
metrics=['accuracy'])
|
|
|
|
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=logdir, histogram_freq=1)
|
|
|
|
model.fit(x=x_train,
|
|
y=y_train,
|
|
epochs=5,
|
|
validation_data=(x_test, y_test),
|
|
callbacks=[tensorboard_callback])
|
|
|
|
model.save(os.path.join(logdir,'./model'))
|