-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnoncnn.py
More file actions
52 lines (46 loc) · 1.61 KB
/
noncnn.py
File metadata and controls
52 lines (46 loc) · 1.61 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
51
52
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
#used to suppress debug messages
import tensorflow as tf
import numpy as np
import readdata as rd
from numpy.random import seed
import random as pyrand
from PIL import Image
seed(1)
tf.random.set_seed(2)
np.random.seed(3)
pyrand.seed(4)
alpha = 0.0018
epoch = 7
batchsize = 32
def mymodel():
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(1000, activation='relu'),
tf.keras.layers.Dropout(0.35),
tf.keras.layers.Dense(400, activation='relu'),
tf.keras.layers.Dropout(0.35),
tf.keras.layers.Dense(100, activation='relu'),
tf.keras.layers.Dropout(0.35),
tf.keras.layers.Dense(40, activation='relu'),
tf.keras.layers.Dropout(0.35),
tf.keras.layers.Dense(2, activation='softmax')
])
return model
def train_model():
X_train, Y_train, X_test, Y_test = rd.readshrink()
X_train = X_train.reshape((-1, 64*64*3))/255 - 0.5
X_test = X_test.reshape((-1, 64*64*3))/255 - 0.5
#X_train, X_test = X_train/255 - 0.5, X_test/255 - 0.5
print(X_train.shape, Y_train.shape)
model = mymodel()
loss_fn = tf.keras.losses.CategoricalCrossentropy()
model.compile(loss=loss_fn, metrics=["accuracy"],
optimizer=tf.keras.optimizers.Adam(learning_rate=alpha))
model.evaluate(X_test, Y_test)
model.fit(X_train, Y_train, epochs=epoch,validation_split=0.0208,
batch_size=batchsize, shuffle=True)
model.evaluate(X_test, Y_test)
def main():
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
train_model()