-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtrain_datafile.py
40 lines (25 loc) · 1.05 KB
/
train_datafile.py
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
import sys
sys.path.append('src')
from nn import *
# [ ] dataset with fewer "not turn", and more "turn left"/"turn right"
# Load data
df = np.genfromtxt('__other/generated_datafile.csv', delimiter=',', usecols=(0,1,2,3,4,5,6), dtype=np.double)
np.random.shuffle(df)
X = df[:, 0:4]
y = df[:, 4:]
# Initialize model
callback = tf.keras.callbacks.EarlyStopping(monitor='accuracy', patience=400, restore_best_weights=True)
model = NeuralNetwork()
opt = tf.keras.optimizers.Adam(learning_rate=0.001)
#opt = tf.keras.optimizers.SGD(learning_rate=0.001)
model.compile(optimizer=opt, loss = tf.keras.losses.CategoricalCrossentropy(from_logits=True), metrics = ["Accuracy"])
# Train
#model.fit(x=np.array([[0,1,0,0.1]]), y=np.array([[0, 1, 0]]))
model.fit(x=X, y=y, epochs=7500, callbacks=[callback])
print("----------------")
print("Fitting done!!!!")
print("----------------")
# Save model
#model.save_weights('__models/training_from_datafile', overwrite=True)
print("Saving model")
model.save('__models/saved_model_from_datafile')