Guest User

Untitled

a guest
Nov 1st, 2018
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.62 KB | None | 0 0
  1. # Artificial Neural Network
  2.  
  3. # Installing Theano
  4. # pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git
  5.  
  6. # Installing Tensorflow
  7. # Install Tensorflow from the website: https://www.tensorflow.org/versions/r0.12/get_started/os_setup.html
  8.  
  9. # Installing Keras
  10. # pip install --upgrade keras
  11.  
  12. # Part 1 - Data Preprocessing
  13.  
  14. # Importing the libraries
  15. import numpy as np
  16. import keras
  17. from keras.models import Sequential
  18. #from keras.models import load_model
  19. from keras.layers import Convolution2D
  20. from keras.layers import MaxPooling2D
  21. from keras.layers import AveragePooling2D
  22. from keras.layers import Flatten
  23. from keras.layers import Dense
  24. from keras.layers import Dropout
  25.  
  26.  
  27. #Importing the dataset
  28. with open("fer2013/fer2013.csv") as f:
  29. content = f.readlines()
  30.  
  31. lines = np.array(content)
  32.  
  33. num_of_instances = lines.size
  34. print("number of instances: ",num_of_instances)
  35.  
  36. x_train, y_train, x_test, y_test = [], [], [], []
  37.  
  38. for i in range(1,num_of_instances):
  39. try:
  40. emotion, img, usage = lines[i].split(",")
  41. val = img.split(" ")
  42. pixels = np.array(val, 'float32')
  43. emotion = keras.utils.to_categorical(emotion, 6)
  44. if 'Training' in usage:
  45. x_train.append(pixels)
  46. y_train.append(emotion)
  47. elif 'PublicTest' in usage:
  48. x_test.append(pixels)
  49. y_test.append(emotion)
  50. except:
  51. print("", end="")
  52.  
  53. print(x_train)
  54. model = Sequential()
  55.  
  56. #1st convolution layer
  57. model.add(Convolution2D(64, (5, 5), input_shape=(48,48,1), activation='relu'))
  58. model.add(MaxPooling2D(pool_size=(5,5), strides=(2, 2)))
  59.  
  60. #2nd convolution layer
  61. model.add(Convolution2D(64, (3, 3), activation='relu'))
  62. model.add(Convolution2D(64, (3, 3), activation='relu'))
  63. model.add(AveragePooling2D(pool_size=(3,3), strides=(2, 2)))
  64.  
  65. #3rd convolution layer
  66. model.add(Convolution2D(128, (3, 3), activation='relu'))
  67. model.add(Convolution2D(128, (3, 3), activation='relu'))
  68. model.add(AveragePooling2D(pool_size=(3,3), strides=(2, 2)))
  69.  
  70. model.add(Flatten())
  71.  
  72. #fully connected neural networks
  73. model.add(Dense(1024, activation='relu'))
  74. model.add(Dropout(0.2))
  75. model.add(Dense(1024, activation='relu'))
  76. model.add(Dropout(0.2))
  77.  
  78. model.add(Dense(6, activation='softmax'))
  79.  
  80. from keras.preprocessing.image import ImageDataGenerator
  81. #from keras import utils as np_utils
  82.  
  83. gen = ImageDataGenerator()
  84. train_generator = gen.flow(x_train, y_train, batch_size=32)
  85.  
  86. #model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adam(), metrics=['accuracy'])
  87.  
  88. model.fit_generator(train_generator, steps_per_epoch=32, epochs=25)
Add Comment
Please, Sign In to add comment