-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain_tf.py
More file actions
50 lines (37 loc) · 1.72 KB
/
Copy pathmain_tf.py
File metadata and controls
50 lines (37 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
"""
Based on this tutorial:
https://www.tensorflow.org/tutorials/images/cnn
"""
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
def train(device='/gpu:0'):
with tf.device(device):
(train_images, train_labels), (test_images,
test_labels) = datasets.cifar10.load_data()
train_images, test_images = train_images / 255.0, test_images / 255.0
model = models.Sequential()
model.add(layers.Conv2D(
32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10))
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(
from_logits=True),
metrics=['accuracy'])
history = model.fit(train_images, train_labels, epochs=2,
validation_data=(test_images, test_labels))
if __name__ == "__main__":
print("########## TensorFlow version:", tf.__version__)
print('#######################################################')
print("########## Visible devices:", tf.config.get_visible_devices())
print('#######################################################')
print('########## CUDA run:')
train('/gpu:0')
print('########## CPU run:')
train('/cpu:0')
print('########## If everything worked correctly, CUDA run should be 2-3x faster')