Guest User

Untitled

a guest
Dec 11th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.08 KB | None | 0 0
  1. import numpy as np
  2. from matplotlib import pyplot as plt
  3.  
  4. from keras.utils import np_utils
  5. from keras.models import Sequential
  6. from keras.layers.core import Dense, Dropout, Flatten
  7. from keras.callbacks import EarlyStopping, ModelCheckpoint
  8. from keras.layers import Conv2D, MaxPooling2D
  9. from keras.optimizers import Adam
  10.  
  11. from keras.callbacks import EarlyStopping
  12.  
  13.  
  14.  
  15. %matplotlib inline
  16. import matplotlib.pyplot as plt
  17. import tensorflow as tf
  18. import numpy as np
  19. from sklearn.metrics import confusion_matrix
  20. import time
  21. from datetime import timedelta
  22. import math
  23.  
  24.  
  25.  
  26. #Load Data
  27. import tensorflow as tf
  28. import numpy as np
  29. import imageio
  30. import matplotlib.pyplot as plt
  31. try:
  32. from scipy import misc
  33. except ImportError:
  34. !pip install scipy
  35. from scipy import misc
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42. import tensorflow as tf
  43. import matplotlib.pyplot as plt
  44. from PIL import Image
  45. import numpy as np
  46.  
  47.  
  48. training_size = 720
  49.  
  50. train_images = np.empty(shape=(training_size, 250,250,1))
  51.  
  52. import glob
  53. i = 0
  54. for filename in glob.glob('C:/Mah/Database/HKPU/HKPU60CLS/Train/*.bmp'):
  55. image = np.array(Image.open(filename))
  56. image1 = image[:,:, np.newaxis]
  57. image2 = tf.Session().run(tf.image.resize_image_with_crop_or_pad(image1, 250, 250))
  58.  
  59. train_images[i] = image2
  60. i+=1
  61.  
  62.  
  63. X_train = train_images[:,:,:,0]
  64.  
  65. a= [0,0,0,0,0,0,0,0,0,0,0,0,
  66. 1,1,1,1,1,1,1,1,1,1,1,1,
  67. 2,2,2,2,2,2,2,2,2,2,2,2,
  68. 3,3,3,3,3,3,3,3,3,3,3,3,
  69. 4,4,4,4,4,4,4,4,4,4,4,4,
  70. 5,5,5,5,5,5,5,5,5,5,5,5,
  71. 6,6,6,6,6,6,6,6,6,6,6,6,
  72. 7,7,7,7,7,7,7,7,7,7,7,7,
  73. 8,8,8,8,8,8,8,8,8,8,8,8,
  74. 9,9,9,9,9,9,9,9,9,9,9,9,
  75. 10,10,10,10,10,10,10,10,10,10,10,10,
  76. 11,11,11,11,11,11,11,11,11,11,11,11,
  77. 12,12,12,12,12,12,12,12,12,12,12,12,
  78. 13,13,13,13,13,13,13,13,13,13,13,13,
  79. 14,14,14,14,14,14,14,14,14,14,14,14,
  80. 15,15,15,15,15,15,15,15,15,15,15,15,
  81. 16,16,16,16,16,16,16,16,16,16,16,16,
  82. 17,17,17,17,17,17,17,17,17,17,17,17,
  83. 18,18,18,18,18,18,18,18,18,18,18,18,
  84. 19,19,19,19,19,19,19,19,19,19,19,19,
  85. 20,20,20,20,20,20,20,20,20,20,20,20,
  86. 21,21,21,21,21,21,21,21,21,21,21,21,
  87. 22,22,22,22,22,22,22,22,22,22,22,22,
  88. 23,23,23,23,23,23,23,23,23,23,23,23,
  89. 24,24,24,24,24,24,24,24,24,24,24,24,
  90. 25,25,25,25,25,25,25,25,25,25,25,25,
  91. 26,26,26,26,26,26,26,26,26,26,26,26,
  92. 27,27,27,27,27,27,27,27,27,27,27,27,
  93. 28,28,28,28,28,28,28,28,28,28,28,28,
  94. 29,29,29,29,29,29,29,29,29,29,29,29,
  95. 30,30,30,30,30,30,30,30,30,30,30,30,
  96. 31,31,31,31,31,31,31,31,31,31,31,31,
  97. 32,32,32,32,32,32,32,32,32,32,32,32,
  98. 33,33,33,33,33,33,33,33,33,33,33,33,
  99. 34,34,34,34,34,34,34,34,34,34,34,34,
  100. 35,35,35,35,35,35,35,35,35,35,35,35,
  101. 36,36,36,36,36,36,36,36,36,36,36,36,
  102. 37,37,37,37,37,37,37,37,37,37,37,37,
  103. 38,38,38,38,38,38,38,38,38,38,38,38,
  104. 39,39,39,39,39,39,39,39,39,39,39,39,
  105. 40,40,40,40,40,40,40,40,40,40,40,40,
  106. 41,41,41,41,41,41,41,41,41,41,41,41,
  107. 42,42,42,42,42,42,42,42,42,42,42,42,
  108. 43,43,43,43,43,43,43,43,43,43,43,43,
  109. 44,44,44,44,44,44,44,44,44,44,44,44,
  110. 45,45,45,45,45,45,45,45,45,45,45,45,
  111. 46,46,46,46,46,46,46,46,46,46,46,46,
  112. 47,47,47,47,47,47,47,47,47,47,47,47,
  113. 48,48,48,48,48,48,48,48,48,48,48,48,
  114. 49,49,49,49,49,49,49,49,49,49,49,49,
  115. 50,50,50,50,50,50,50,50,50,50,50,50,
  116. 51,51,51,51,51,51,51,51,51,51,51,51,
  117. 52,52,52,52,52,52,52,52,52,52,52,52,
  118. 53,53,53,53,53,53,53,53,53,53,53,53,
  119. 54,54,54,54,54,54,54,54,54,54,54,54,
  120. 55,55,55,55,55,55,55,55,55,55,55,55,
  121. 56,56,56,56,56,56,56,56,56,56,56,56,
  122. 57,57,57,57,57,57,57,57,57,57,57,57,
  123. 58,58,58,58,58,58,58,58,58,58,58,58,
  124. 59,59,59,59,59,59,59,59,59,59,59,59]
  125.  
  126.  
  127.  
  128. from sklearn.preprocessing import OneHotEncoder
  129. train_labels = OneHotEncoder(sparse=False).fit_transform(np.asarray(a).reshape(-1, 1))
  130. print(train_labels)
  131.  
  132.  
  133. y_train = np.argmax(train_labels, axis=1)
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141. print(X_train.shape)
  142. print(y_train.shape)
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150. #Load Data
  151. import tensorflow as tf
  152. import numpy as np
  153. import imageio
  154. import matplotlib.pyplot as plt
  155. try:
  156. from scipy import misc
  157. except ImportError:
  158. !pip install scipy
  159. from scipy import misc
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171. test_size = 480
  172. img_size = 384*284
  173. test_images = np.empty(shape=(test_size, 250,250,1))
  174.  
  175. import glob
  176. i = 0
  177. for filename in glob.glob('C:/Mah/Database/HKPU/HKPU60CLS/Test/*.bmp'):
  178. image = np.array(Image.open(filename))
  179. image1 = image[:,:, np.newaxis]
  180. image2 = tf.Session().run(tf.image.resize_image_with_crop_or_pad(image1, 250, 250))
  181. test_images[i] = image2
  182.  
  183. i+=1
  184.  
  185. X_test = test_images[:,:,:,0]
  186.  
  187.  
  188. c= [0,0,0,0,0,0,0,0,
  189. 1,1,1,1,1,1,1,1,
  190. 2,2,2,2,2,2,2,2,
  191. 3,3,3,3,3,3,3,3,
  192. 4,4,4,4,4,4,4,4,
  193. 5,5,5,5,5,5,5,5,
  194. 6,6,6,6,6,6,6,6,
  195. 7,7,7,7,7,7,7,7,
  196. 8,8,8,8,8,8,8,8,
  197. 9,9,9,9,9,9,9,9,
  198. 10,10,10,10,10,10,10,10,
  199. 11,11,11,11,11,11,11,11,
  200. 12,12,12,12,12,12,12,12,
  201. 13,13,13,13,13,13,13,13,
  202. 14,14,14,14,14,14,14,14,
  203. 15,15,15,15,15,15,15,15,
  204. 16,16,16,16,16,16,16,16,
  205. 17,17,17,17,17,17,17,17,
  206. 18,18,18,18,18,18,18,18,
  207. 19,19,19,19,19,19,19,19,
  208. 20,20,20,20,20,20,20,20,
  209. 21,21,21,21,21,21,21,21,
  210. 22,22,22,22,22,22,22,22,
  211. 23,23,23,23,23,23,23,23,
  212. 24,24,24,24,24,24,24,24,
  213. 25,25,25,25,25,25,25,25,
  214. 26,26,26,26,26,26,26,26,
  215. 27,27,27,27,27,27,27,27,
  216. 28,28,28,28,28,28,28,28,
  217. 29,29,29,29,29,29,29,29,
  218. 30,30,30,30,30,30,30,30,
  219. 31,31,31,31,31,31,31,31,
  220. 32,32,32,32,32,32,32,32,
  221. 33,33,33,33,33,33,33,33,
  222. 34,34,34,34,34,34,34,34,
  223. 35,35,35,35,35,35,35,35,
  224. 36,36,36,36,36,36,36,36,
  225. 37,37,37,37,37,37,37,37,
  226. 38,38,38,38,38,38,38,38,
  227. 39,39,39,39,39,39,39,39,
  228. 40,40,40,40,40,40,40,40,
  229. 41,41,41,41,41,41,41,41,
  230. 42,42,42,42,42,42,42,42,
  231. 43,43,43,43,43,43,43,43,
  232. 44,44,44,44,44,44,44,44,
  233. 45,45,45,45,45,45,45,45,
  234. 46,46,46,46,46,46,46,46,
  235. 47,47,47,47,47,47,47,47,
  236. 48,48,48,48,48,48,48,48,
  237. 49,49,49,49,49,49,49,49,
  238. 50,50,50,50,50,50,50,50,
  239. 51,51,51,51,51,51,51,51,
  240. 52,52,52,52,52,52,52,52,
  241. 53,53,53,53,53,53,53,53,
  242. 54,54,54,54,54,54,54,54,
  243. 55,55,55,55,55,55,55,55,
  244. 56,56,56,56,56,56,56,56,
  245. 57,57,57,57,57,57,57,57,
  246. 58,58,58,58,58,58,58,58,
  247. 59,59,59,59,59,59,59,59]
  248.  
  249.  
  250.  
  251. from sklearn.preprocessing import OneHotEncoder
  252. test_labels = OneHotEncoder(sparse=False).fit_transform(np.asarray(c).reshape(-1, 1))
  253. print(test_labels)
  254.  
  255.  
  256. y_test = np.argmax(test_labels, axis=1)
  257.  
  258.  
  259. print(y_train.shape)
  260. print(X_test.shape)
  261. print(y_test.shape)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. img_rows, img_cols = X_train[0].shape[0], X_train[0].shape[1]
  269. X_train = X_train.reshape(X_train.shape[0], img_rows, img_cols, 1)
  270. X_test = X_test.reshape(X_test.shape[0], img_rows, img_cols, 1)
  271. input_shape = (img_rows, img_cols, 1)
  272.  
  273.  
  274.  
  275.  
  276.  
  277. X_train = X_train.astype('float32')/255.
  278. X_test = X_test.astype('float32')/255.
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286. n_classes = len(set(y_train))
  287. y_train = np_utils.to_categorical(y_train, n_classes)
  288. y_test = np_utils.to_categorical(y_test, n_classes)
  289.  
  290.  
  291.  
  292. model = Sequential()
  293.  
  294. model.add(Conv2D(64, kernel_size=(3, 3), activation='relu', input_shape=input_shape))
  295. model.add(MaxPooling2D(pool_size=(2, 2)))
  296.  
  297. model.add(Conv2D(128, kernel_size=(3, 3), activation='relu', padding='same'))
  298. model.add(MaxPooling2D(pool_size=(2, 2)))
  299.  
  300. model.add(Conv2D(256, kernel_size=(3, 3), activation='relu', padding='same'))
  301. model.add(MaxPooling2D(pool_size=(2, 2)))
  302.  
  303. model.add(Dropout(0.5))
  304. model.add(Flatten())
  305. model.add(Dense(128, activation='relu'))
  306. model.add(Dropout(0.5))
  307. model.add(Dense(n_classes, activation='softmax'))
  308.  
  309. model.compile(loss=['categorical_crossentropy'], optimizer='adam', metrics=['accuracy'])
  310.  
  311. model.summary()
  312.  
  313.  
  314. callbacks = [EarlyStopping(monitor='val_acc', patience=5)]
  315.  
  316.  
  317. batch_size = 50
  318. n_epochs = 1000
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325. model.fit(X_train, y_train, batch_size=batch_size, epochs=n_epochs, verbose=1, validation_split=0.2, callbacks=callbacks)
  326.  
  327.  
  328.  
  329.  
  330.  
  331. score = model.evaluate(X_test, y_test, verbose=0)
  332. print('Test loss:', score[0])
  333. print('Test accuracy:', score[1])
Add Comment
Please, Sign In to add comment