Ready Model
This commit is contained in:
57
main.py
Normal file
57
main.py
Normal file
@@ -0,0 +1,57 @@
|
||||
from classes.DataLoader import DataSetLoader
|
||||
import tensorflow as tf
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
def create_model(image_size):
|
||||
model = tf.keras.Sequential()
|
||||
|
||||
if image_size <= 10:
|
||||
model.add(tf.keras.layers.Conv2D(32, (2, 2), activation='relu', input_shape=(image_size, image_size, 3)))
|
||||
model.add(tf.keras.layers.MaxPooling2D((2, 2), padding='same'))
|
||||
else:
|
||||
model.add(tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(image_size, image_size, 3)))
|
||||
model.add(tf.keras.layers.MaxPooling2D((2, 2)))
|
||||
|
||||
if image_size > 10:
|
||||
model.add(tf.keras.layers.Conv2D(64, (3, 3), activation='relu'))
|
||||
model.add(tf.keras.layers.MaxPooling2D((2, 2)))
|
||||
|
||||
if image_size > 20:
|
||||
model.add(tf.keras.layers.Conv2D(128, (3, 3), activation='relu'))
|
||||
model.add(tf.keras.layers.MaxPooling2D((2, 2)))
|
||||
|
||||
model.add(tf.keras.layers.GlobalAveragePooling2D())
|
||||
|
||||
model.add(tf.keras.layers.Dense(128, activation='relu'))
|
||||
model.add(tf.keras.layers.Dense(7, activation='softmax'))
|
||||
|
||||
return model
|
||||
|
||||
if __name__ == '__main__':
|
||||
#Create dataset from image folder
|
||||
|
||||
# loader = DataSetLoader(p='/Users/denysseredenko/Desktop/ML-cropped/processed', x=50, y=50)
|
||||
# ds = loader.create_dataset_from_csv('../all_data_cropped.csv')
|
||||
# ds.save('/Users/denysseredenko/Desktop/privat/StreetSignRecognitionTensor/dataset_cropped_50x50')
|
||||
|
||||
ds = tf.data.Dataset.load('../dataset/13802249122632658895/00000000.shard/00000000.snapshot')
|
||||
ds = ds.shuffle(buffer_size=43349)
|
||||
|
||||
ds.save('/Users/denysseredenko/Desktop/privat/StreetSignRecognitionTensor/dataset_cropped_50x50')
|
||||
|
||||
train_ds, test_ds = tf.keras.utils.split_dataset(ds, left_size=0.9)
|
||||
|
||||
train_data = train_ds.batch(5).prefetch(tf.data.AUTOTUNE)
|
||||
test_data = test_ds.batch(5).prefetch(tf.data.AUTOTUNE)
|
||||
|
||||
|
||||
model = create_model(50)
|
||||
|
||||
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
|
||||
loss=tf.keras.losses.SparseCategoricalCrossentropy(),
|
||||
metrics=['accuracy'])
|
||||
|
||||
model.fit(train_data, epochs=7)
|
||||
|
||||
test_loss, test_acc = model.evaluate(test_data, verbose=2)
|
||||
print('\nTest accuracy:', test_acc)
|
||||
Reference in New Issue
Block a user