Path: blob/master/Part 8 - Deep Learning/Convolutional Neural Networks/cnn.py
1009 views
# Convolutional Neural Network12# Installing Theano3# pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git45# Installing Tensorflow6# Install Tensorflow from the website: https://www.tensorflow.org/versions/r0.12/get_started/os_setup.html78# Installing Keras9# pip install --upgrade keras1011# Part 1 - Building the CNN1213# Importing the Keras libraries and packages14from keras.models import Sequential15from keras.layers import Conv2D16from keras.layers import MaxPooling2D17from keras.layers import Flatten18from keras.layers import Dense1920# Initialising the CNN21classifier = Sequential()2223# Step 1 - Convolution24classifier.add(Conv2D(32, (3, 3), input_shape=(64, 64, 3), activation="relu"))2526# Step 2 - Pooling27classifier.add(MaxPooling2D(pool_size = (2, 2)))2829# Adding a second convolutional layer30classifier.add(Conv2D(32, (3, 3), activation="relu"))31classifier.add(MaxPooling2D(pool_size = (2, 2)))3233# Step 3 - Flattening34classifier.add(Flatten())3536# Step 4 - Full connection37classifier.add(Dense(activation="relu", units=128))38classifier.add(Dense(activation="sigmoid", units=1))3940# Compiling the CNN41classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])4243# Part 2 - Fitting the CNN to the images4445from keras.preprocessing.image import ImageDataGenerator4647train_datagen = ImageDataGenerator(rescale = 1./255,48shear_range = 0.2,49zoom_range = 0.2,50horizontal_flip = True)5152test_datagen = ImageDataGenerator(rescale = 1./255)53training_set = train_datagen.flow_from_directory('dataset/training_set',54target_size = (64, 64),55batch_size = 32,56class_mode = 'binary')5758test_set = test_datagen.flow_from_directory('dataset/test_set',59target_size = (64, 64),60batch_size = 32,61class_mode = 'binary')62classifier.fit_generator(training_set,63epochs = 25,64validation_data = test_set,65validation_steps = 2000,66steps_per_epoch=250)6768