Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Artificial Neural Network
- # Installing Theano
- # pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git
- # Installing Tensorflow
- # Install Tensorflow from the website: https://www.tensorflow.org/versions/r0.12/get_started/os_setup.html
- # Installing Keras
- # pip install --upgrade keras
- # Part 1 - Data Preprocessing
- # Importing the libraries
- import numpy as np
- import keras
- from keras.models import Sequential
- #from keras.models import load_model
- from keras.layers import Convolution2D
- from keras.layers import MaxPooling2D
- from keras.layers import AveragePooling2D
- from keras.layers import Flatten
- from keras.layers import Dense
- from keras.layers import Dropout
- #Importing the dataset
- with open("fer2013/fer2013.csv") as f:
- content = f.readlines()
- lines = np.array(content)
- num_of_instances = lines.size
- print("number of instances: ",num_of_instances)
- x_train, y_train, x_test, y_test = [], [], [], []
- for i in range(1,num_of_instances):
- try:
- emotion, img, usage = lines[i].split(",")
- val = img.split(" ")
- pixels = np.array(val, 'float32')
- emotion = keras.utils.to_categorical(emotion, 6)
- if 'Training' in usage:
- x_train.append(pixels)
- y_train.append(emotion)
- elif 'PublicTest' in usage:
- x_test.append(pixels)
- y_test.append(emotion)
- except:
- print("", end="")
- print(x_train)
- model = Sequential()
- #1st convolution layer
- model.add(Convolution2D(64, (5, 5), input_shape=(48,48,1), activation='relu'))
- model.add(MaxPooling2D(pool_size=(5,5), strides=(2, 2)))
- #2nd convolution layer
- model.add(Convolution2D(64, (3, 3), activation='relu'))
- model.add(Convolution2D(64, (3, 3), activation='relu'))
- model.add(AveragePooling2D(pool_size=(3,3), strides=(2, 2)))
- #3rd convolution layer
- model.add(Convolution2D(128, (3, 3), activation='relu'))
- model.add(Convolution2D(128, (3, 3), activation='relu'))
- model.add(AveragePooling2D(pool_size=(3,3), strides=(2, 2)))
- model.add(Flatten())
- #fully connected neural networks
- model.add(Dense(1024, activation='relu'))
- model.add(Dropout(0.2))
- model.add(Dense(1024, activation='relu'))
- model.add(Dropout(0.2))
- model.add(Dense(6, activation='softmax'))
- from keras.preprocessing.image import ImageDataGenerator
- #from keras import utils as np_utils
- gen = ImageDataGenerator()
- train_generator = gen.flow(x_train, y_train, batch_size=32)
- #model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adam(), metrics=['accuracy'])
- model.fit_generator(train_generator, steps_per_epoch=32, epochs=25)
Add Comment
Please, Sign In to add comment