Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from keras.preprocessing.image import ImageDataGenerator
- from keras.models import Sequential
- from keras.layers import Conv2D, MaxPooling2D
- from keras.layers import Activation, Dropout, Flatten, Dense
- from keras import backend as K
- from numpy.core import multiarray
- # dimensions of our images.
- img_width, img_height = 150, 150
- train_data_dir = 'arcDataset'
- validation_data_dir = 'arcDataset'
- nb_train_samples = 10000
- nb_validation_samples = 10000
- epochs = 50
- batch_size = 64
- if K.image_data_format() == 'channels_first':
- input_shape = (3, img_width, img_height)
- else:
- input_shape = (img_width, img_height, 3)
- model = Sequential()
- model.add(Conv2D(32, (3, 3), input_shape=input_shape))
- model.add(Activation('relu'))
- model.add(MaxPooling2D(pool_size=(2, 2)))
- model.add(Conv2D(32, (3, 3)))
- model.add(Activation('relu'))
- model.add(MaxPooling2D(pool_size=(2, 2)))
- model.add(Conv2D(64, (3, 3)))
- model.add(Activation('relu'))
- model.add(MaxPooling2D(pool_size=(2, 2)))
- model.add(Flatten())
- model.add(Dense(64))
- model.add(Activation('relu'))
- model.add(Dropout(0.5))
- model.add(Dense(9))
- model.add(Activation('softmax'))
- # this is the augmentation configuration we will use for training
- train_datagen = ImageDataGenerator(
- rescale=1. / 255,
- shear_range=0.2,
- zoom_range=0.2,
- horizontal_flip=True)
- # this is the augmentation configuration we will use for testing:
- # only rescaling
- test_datagen = ImageDataGenerator(rescale=1. / 255)
- model.compile(loss='binary_crossentropy', # or categorical_crossentropy
- optimizer='rmsprop',# or adagrad
- metrics=['accuracy'])
- train_generator = train_datagen.flow_from_directory(
- train_data_dir,
- target_size=(img_width, img_height),
- batch_size=batch_size,
- class_mode='categorical')
- print(train_generator.class_indices)
- validation_generator = test_datagen.flow_from_directory(
- validation_data_dir,
- target_size=(img_width, img_height),
- batch_size=batch_size,
- class_mode='categorical')
- model.fit_generator(
- train_generator,
- steps_per_epoch=nb_train_samples // batch_size,
- epochs=epochs,
- validation_data=validation_generator,
- validation_steps=nb_validation_samples // batch_size)
- model.save('model.h5')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement