From 4f9085dccb33006a17c5d8575dbb39859ea0b2df Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Sun, 16 Oct 2022 20:34:34 +0200 Subject: [PATCH] Create tensorflowtest.py --- doc/src/week43/programs/tensorflowtest.py | 49 +++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 doc/src/week43/programs/tensorflowtest.py diff --git a/doc/src/week43/programs/tensorflowtest.py b/doc/src/week43/programs/tensorflowtest.py new file mode 100644 index 000000000..e47235c8a --- /dev/null +++ b/doc/src/week43/programs/tensorflowtest.py @@ -0,0 +1,49 @@ +import tensorflow as tf +import tensorflow_datasets as tfds +print("TensorFlow version:", tf.__version__) +print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU'))) +tf.config.list_physical_devices('GPU') +(ds_train, ds_test), ds_info = tfds.load( + 'mnist', + split=['train', 'test'], + shuffle_files=True, + as_supervised=True, + with_info=True, +) +def normalize_img(image, label): + """Normalizes images: `uint8` -> `float32`.""" + return tf.cast(image, tf.float32) / 255., label +batch_size = 128 +ds_train = ds_train.map( + normalize_img, num_parallel_calls=tf.data.experimental.AUTOTUNE) +ds_train = ds_train.cache() +ds_train = ds_train.shuffle(ds_info.splits['train'].num_examples) +ds_train = ds_train.batch(batch_size) +ds_train = ds_train.prefetch(tf.data.experimental.AUTOTUNE) +ds_test = ds_test.map( + normalize_img, num_parallel_calls=tf.data.experimental.AUTOTUNE) +ds_test = ds_test.batch(batch_size) +ds_test = ds_test.cache() +ds_test = ds_test.prefetch(tf.data.experimental.AUTOTUNE) +model = tf.keras.models.Sequential([ + tf.keras.layers.Conv2D(32, kernel_size=(3, 3), + activation='relu'), + tf.keras.layers.Conv2D(64, kernel_size=(3, 3), + activation='relu'), + tf.keras.layers.MaxPooling2D(pool_size=(2, 2)), +# tf.keras.layers.Dropout(0.25), + tf.keras.layers.Flatten(), + tf.keras.layers.Dense(128, activation='relu'), +# tf.keras.layers.Dropout(0.5), + tf.keras.layers.Dense(10, activation='softmax') +]) +model.compile( + loss='sparse_categorical_crossentropy', + optimizer=tf.keras.optimizers.Adam(0.001), + metrics=['accuracy'], +) +model.fit( + ds_train, + epochs=12, + validation_data=ds_test, +)