Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.12 KB | None | 0 0
  1. from __future__ import division, print_function, absolute_import
  2.  
  3. import tflearn, cv2, numpy as np
  4. from tflearn.layers.core import input_data, dropout, fully_connected
  5. from tflearn.layers.conv import conv_2d, max_pool_2d #импортируем операции свертки и пула
  6. from tflearn.layers.normalization import local_response_normalization #импортируем операцию нормализации
  7. from tflearn.layers.estimator import regression #импортируем операцию регрессии
  8.  
  9. Images = ['1.png','2.png','3.png','4.png','5.png','6.png','7.png','8.png','9.png','10.png','11.png','12.png','13.png','14.png','15.png','16.png','17.png','18.png','19.png','20.png','21.png','22.png','23.png','24.png','25.png','26.png','27.png','28.png','29.png','30.png','31.png','32.png','33.png','34.png','35.png','36.png','37.png','38.png','39.png','40.png','41.png','42.png','43.png','44.png','45.png','46.png','47.png','48.png','49.png','50.png','51.png','52.png','53.png','54.png','55.png','56.png','57.png','58.png','59.png','60.png','61.png','62.png','63.png','64.png','65.png','66.png','67.png','68.png','69.png','70.png','71.png','72.png','73.png','74.png','75.png','76.png','77.png','78.png','79.png','80.png','81.png','82.png','83.png','84.png','85.png','86.png','87.png','88.png','89.png','90.png','91.png','92.png','93.png','94.png','95.png','96.png','97.png','98.png','99.png','100.png','101.png','102.png','103.png','104.png','105.png','106.png','107.png','108.png','109.png','110.png','111.png','112.png','113.png','114.png','115.png','116.png','117.png','118.png','119.png','120.png','121.png','122.png','123.png','124.png','125.png','126.png','127.png','128.png','129.png','130.png','131.png','132.png','133.png','134.png','135.png','136.png','137.png','138.png','139.png','140.png','141.png','142.png','143.png','144.png','145.png','146.png','147.png','148.png','149.png','150.png','151.png','152.png','153.png','154.png','155.png','156.png','157.png','158.png','159.png','160.png','161.png','162.png','163.png','164.png','165.png','166.png','167.png','168.png','169.png','170.png','171.png','172.png','173.png','174.png','175.png','176.png','177.png','178.png','179.png','180.png','181.png','182.png','183.png','184.png','185.png','186.png','187.png','188.png','189.png','190.png','191.png','192.png','193.png','194.png','195.png','196.png','197.png','198.png','199.png','200.png','201.png','202.png','203.png','204.png','205.png','206.png','207.png','208.png','209.png','210.png','211.png','212.png','213.png','214.png','215.png','216.png','217.png','218.png','219.png','220.png','221.png','222.png','223.png','224.png','225.png','226.png','227.png','228.png','229.png','230.png','231.png','232.png','233.png','234.png','235.png','236.png','237.png','238.png','239.png','240.png','241.png','242.png','243.png','244.png','245.png','246.png','247.png','248.png','249.png','250.png','251.png','252.png','253.png','254.png','255.png','256.png','257.png','258.png','259.png','260.png','261.png','262.png','263.png','264.png','265.png','266.png','267.png','268.png','269.png','270.png','271.png','272.png','273.png','274.png','275.png','276.png','277.png','278.png','279.png','280.png','281.png','282.png','283.png','284.png','285.png','286.png','287.png','288.png','289.png','290.png','291.png','292.png','293.png','294.png','295.png','296.png','297.png','298.png','299.png','300.png','301.png','302.png','303.png','304.png','305.png','306.png','307.png','308.png','309.png','310.png','311.png','312.png','313.png','314.png','315.png','316.png','317.png','318.png','319.png','320.png','321.png','322.png','323.png','324.png','325.png','326.png','327.png','328.png','329.png','330.png','331.png','332.png','333.png','334.png','335.png','336.png','337.png','338.png','339.png','340.png','341.png','342.png','343.png','344.png','345.png','346.png','347.png','348.png','349.png','350.png','351.png','352.png','353.png','354.png','355.png','356.png','357.png','358.png','359.png','360.png','361.png','362.png','363.png','364.png','365.png','366.png','367.png','368.png','369.png','370.png','371.png','372.png','373.png','374.png','375.png','376.png','377.png','378.png','379.png','380.png','381.png','382.png','383.png','384.png','385.png','386.png','387.png','388.png','389.png','390.png','391.png','392.png','393.png','394.png','395.png','396.png','397.png','398.png','399.png','400.png']
  10. Images_false = ['1a.png','2a.png','3a.png','4a.png','5a.png','6a.png','7a.png','8a.png','9a.png','10a.png','11a.png','12a.png','13a.png','14a.png','15a.png','16a.png','17a.png','18a.png','19a.png','20a.png','21a.png','22a.png','23a.png','24a.png','25a.png','26a.png','27a.png','28a.png','29a.png','30a.png','31a.png','32a.png','33a.png','34a.png','35a.png','36a.png','37a.png','38a.png','39a.png','40a.png','41a.png','42a.png','43a.png','44a.png','45a.png','46a.png','47a.png','48a.png','49a.png','50a.png','51a.png','52a.png','53a.png','54a.png','55a.png','56a.png','57a.png','58a.png','59a.png','60a.png','61a.png','62a.png','63a.png','64a.png','65a.png','66a.png','67a.png','68a.png','69a.png','70a.png','71a.png','72a.png','73a.png','74a.png','75a.png','76a.png','77a.png','78a.png','79a.png','80a.png','81a.png','82a.png','83a.png','84a.png','85a.png','86a.png','87a.png','88a.png','89a.png','90a.png','91a.png','92a.png','93a.png','94a.png','95a.png','96a.png','97a.png','98a.png','99a.png','100a.png','101a.png','102a.png','103a.png','104a.png','105a.png','106a.png','107a.png','108a.png','109a.png','110a.png','111a.png','112a.png','113a.png','114a.png','115a.png','116a.png','117a.png','118a.png','119a.png','120a.png','121a.png','122a.png','123a.png','124a.png','125a.png','126a.png','127a.png','128a.png','129a.png','130a.png','131a.png','132a.png','133a.png','134a.png','135a.png','136a.png','137a.png','138a.png','139a.png','140a.png','141a.png','142a.png','143a.png','144a.png','145a.png','146a.png','147a.png','148a.png','149a.png','150a.png','151a.png','152a.png','153a.png','154a.png','155a.png','156a.png','157a.png','158a.png','159a.png','160a.png','161a.png','162a.png','163a.png','164a.png','165a.png','166a.png','167a.png','168a.png','169a.png','170a.png','171a.png','172a.png','173a.png','174a.png','175a.png','176a.png','177a.png','178a.png','179a.png','180a.png','181a.png','182a.png','183a.png','184a.png','185a.png','186a.png','187a.png','188a.png','189a.png','190a.png','191a.png','192a.png','193a.png','194a.png','195a.png','196a.png','197a.png','198a.png','199a.png','200a.png','201a.png','202a.png','203a.png','204a.png','205a.png','206a.png','207a.png','208a.png','209a.png','210a.png','211a.png','212a.png','213a.png','214a.png','215a.png','216a.png','217a.png','218a.png','219a.png','220a.png','221a.png','222a.png','223a.png','224a.png','225a.png','226a.png','227a.png','228a.png','229a.png','230a.png','231a.png','232a.png','233a.png','234a.png','235a.png','236a.png','237a.png','238a.png','239a.png','240a.png','241a.png','242a.png','243a.png','244a.png','245a.png','246a.png','247a.png','248a.png','249a.png','250a.png','251a.png','252a.png','253a.png','254a.png','255a.png','256a.png','257a.png','258a.png','259a.png','260a.png','261a.png','262a.png','263a.png','264a.png','265a.png','266a.png','267a.png','268a.png','269a.png','270a.png','271a.png','272a.png','273a.png','274a.png','275a.png','276a.png','277a.png','278a.png','279a.png','280a.png','281a.png','282a.png','283a.png','284a.png','285a.png','286a.png','287a.png','288a.png','289a.png','290a.png','291a.png','292a.png','293a.png','294a.png','295a.png','296a.png','297a.png','298a.png','299a.png','300a.png','301a.png','302a.png','303a.png','304a.png','305a.png','306a.png','307a.png','308a.png','309a.png','310a.png','311a.png','312a.png','313a.png','314a.png','315a.png','316a.png','317a.png','318a.png','319a.png','320a.png','321a.png','322a.png','323a.png','324a.png','325a.png','326a.png','327a.png','328a.png','329a.png','330a.png','331a.png','332a.png','333a.png','334a.png','335a.png','336a.png','337a.png','338a.png','339a.png','340a.png','341a.png','342a.png','343a.png','344a.png','345a.png','346a.png','347a.png','348a.png','349a.png','350a.png','351a.png','352a.png','353a.png','354a.png','355a.png','356a.png','357a.png','358a.png','359a.png','360a.png','361a.png','362a.png','363a.png','364a.png','365a.png','366a.png','367a.png','368a.png','369a.png','370a.png','371a.png','372a.png','373a.png','374a.png','375a.png','376a.png','377a.png','378a.png','379a.png','380a.png','381a.png','382a.png','383a.png','384a.png','385a.png','386a.png','387a.png','388a.png','389a.png','390a.png','391a.png','392a.png','393a.png','394a.png','395a.png','396a.png','397a.png','398a.png','399a.png','400a.png']
  11. Images_check = ['1b.png','2b.png','3b.png','4b.png','5b.png','6b.png','7b.png','8b.png','9b.png','10b.png','11b.png','12b.png','13b.png','14b.png','15b.png','16b.png','17b.png','18b.png','19b.png','20b.png','21b.png','22b.png','23b.png','24b.png','25b.png','26b.png','27b.png','28b.png','29b.png','30b.png','31b.png','32b.png','33b.png','34b.png','35b.png','36b.png','37b.png','38b.png','39b.png','40b.png','41b.png','42b.png','43b.png','44b.png','45b.png','46b.png','47b.png','48b.png','49b.png','50b.png','51b.png','52b.png','53b.png','54b.png','55b.png','56b.png','57b.png','58b.png','59b.png','60b.png','61b.png','62b.png','63b.png','64b.png','65b.png','66b.png','67b.png','68b.png','69b.png','70b.png','71b.png','72b.png','73b.png','74b.png','75b.png','76b.png','77b.png','78b.png','79b.png','80b.png','81b.png','82b.png','83b.png','84b.png','85b.png','86b.png','87b.png','88b.png','89b.png','90b.png','91b.png','92b.png','93b.png','94b.png','95b.png','96b.png','97b.png','98b.png','99b.png','100b.png','101b.png','102b.png','103b.png','104b.png','105b.png','106b.png','107b.png','108b.png','109b.png','110b.png','111b.png','112b.png','113b.png','114b.png','115b.png','116b.png','117b.png','118b.png','119b.png','120b.png','121b.png','122b.png','123b.png','124b.png','125b.png','126b.png','127b.png','128b.png','129b.png','130b.png','131b.png','132b.png','133b.png','134b.png','135b.png','136b.png','137b.png','138b.png','139b.png','140b.png','141b.png','142b.png','143b.png','144b.png','145b.png','146b.png','147b.png','148b.png','149b.png','150b.png','151b.png','152b.png','153b.png','154b.png','155b.png','156b.png','157b.png','158b.png','159b.png','160b.png','161b.png','162b.png','163b.png','164b.png','165b.png','166b.png','167b.png','168b.png','169b.png','170b.png','171b.png','172b.png','173b.png','174b.png','175b.png','176b.png','177b.png','178b.png','179b.png','180b.png','181b.png','182b.png','183b.png','184b.png','185b.png','186b.png','187b.png','188b.png','189b.png','190b.png','191b.png','192b.png','193b.png','194b.png','195b.png','196b.png','197b.png','198b.png','199b.png','200b.png','201b.png','202b.png','203b.png','204b.png','205b.png','206b.png','207b.png','208b.png','209b.png','210b.png','211b.png','212b.png','213b.png','214b.png','215b.png','216b.png','217b.png','218b.png','219b.png','220b.png','221b.png','222b.png','223b.png','224b.png','225b.png','226b.png','227b.png','228b.png','229b.png','230b.png','231b.png','232b.png','233b.png','234b.png','235b.png','236b.png','237b.png','238b.png','239b.png','240b.png','241b.png','242b.png','243b.png','244b.png','245b.png','246b.png','247b.png','248b.png','249b.png','250b.png','251b.png','252b.png','253b.png','254b.png','255b.png','256b.png','257b.png','258b.png','259b.png','260b.png','261b.png','262b.png','263b.png','264b.png','265b.png','266b.png','267b.png','268b.png','269b.png','270b.png','271b.png','272b.png','273b.png','274b.png','275b.png','276b.png','277b.png','278b.png','279b.png','280b.png','281b.png','282b.png','283b.png','284b.png','285b.png','286b.png','287b.png','288b.png','289b.png','290b.png','291b.png','292b.png','293b.png','294b.png','295b.png','296b.png','297b.png','298b.png','299b.png','300b.png','301b.png','302b.png','303b.png','304b.png','305b.png','306b.png','307b.png','308b.png','309b.png','310b.png','311b.png','312b.png','313b.png','314b.png','315b.png','316b.png','317b.png','318b.png','319b.png','320b.png','321b.png','322b.png','323b.png','324b.png','325b.png','326b.png','327b.png','328b.png','329b.png','330b.png','331b.png','332b.png','333b.png','334b.png','335b.png','336b.png','337b.png','338b.png','339b.png','340b.png','341b.png','342b.png','343b.png','344b.png','345b.png','346b.png','347b.png','348b.png','349b.png','350b.png','351b.png','352b.png','353b.png','354b.png','355b.png','356b.png','357b.png','358b.png','359b.png','360b.png','361b.png','362b.png','363b.png','364b.png','365b.png','366b.png','367b.png','368b.png','369b.png','370b.png','371b.png','372b.png','373b.png','374b.png','375b.png','376b.png','377b.png','378b.png','379b.png','380b.png','381b.png','382b.png','383b.png','384b.png','385b.png','386b.png','387b.png','388b.png','389b.png','390b.png','391b.png','392b.png','393b.png','394b.png','395b.png','396b.png','397b.png','398b.png','399b.png','400b.png']
  12.  
  13. X = np.zeros(shape=(800,64*64)) #массив входных данных для обучения
  14. Y = np.zeros(shape=(800,2)) #массив выходных данных для обучения
  15. Xtest = np.zeros(shape=(400,64*64)) #массив входных данных для проверки
  16. Ytest = np.zeros(shape=(400,2)) #массив входных данных для проверки
  17.  
  18. img = cv2.imread(Images[0], 0)
  19.  
  20. end=64*64 #размер изображения
  21.  
  22. #забиваем примеры в обучающую выборку
  23. k=0
  24. while k<400:
  25. #правильные примеры
  26. img = cv2.imread(Images[k], 0)
  27. ret, binary=cv2.threshold(img,127,255,cv2.THRESH_BINARY)
  28.  
  29. x=0
  30. y=0
  31. while y*64+x<end: #превращаем картинку в массив 0 и 1
  32. r=binary[y,x]
  33. if r==255:
  34. r=0
  35. else:
  36. r=1
  37. X[k][y*64+x]=r
  38. Y[k][0]=1
  39. Y[k][1]=0
  40. x=x+1
  41. if x>64-1:
  42. x=0
  43. y=y+1
  44.  
  45. #неправильные примеры
  46. img = cv2.imread(Images_false[k], 0)
  47. ret, binary=cv2.threshold(img,127,255,cv2.THRESH_BINARY)
  48.  
  49. x=0
  50. y=0
  51. while y*64+x<end: #превращаем картинку в массив 0 и 1
  52. r=binary[y,x]
  53. if r==255:
  54. r=0
  55. else:
  56. r=1
  57. X[k+1][y*64+x]=r
  58. Y[k+1][0]=0
  59. Y[k+1][1]=1
  60. x=x+1
  61. if x>64-1:
  62. x=0
  63. y=y+1
  64. print (k)
  65. k=k+1
  66.  
  67. #забиваем примеры в проверочную выборку
  68. k=0
  69. while k<400:
  70. img = cv2.imread(Images_check[k], 0)
  71. ret, binary=cv2.threshold(img,127,255,cv2.THRESH_BINARY)
  72.  
  73. x=0
  74. y=0
  75. while y*64+x<end: #превращаем картинку в массив 0 и 1
  76. r=binary[y,x]
  77. if r==255:
  78. r=0
  79. else:
  80. r=1
  81. Xtest[k][y*64+x]=r
  82. if k<200:
  83. Ytest[k][0]=1
  84. Ytest[k][1]=0
  85. else:
  86. Ytest[k][0]=0
  87. Ytest[k][1]=1
  88. if x>64-1:
  89. x=0
  90. y=y+1
  91. print (k)
  92. k=k+1
  93.  
  94. print ("Examples are got" )
  95.  
  96.  
  97.  
  98. # Подготовка данных
  99. X = X.reshape([-1, 64, 64, 1]) #переформировываем в 4D тензор
  100. Xtest = Xtest.reshape([-1, 64, 64, 1]) #переформировываем в 4D тензор
  101.  
  102. # Строим сверточную сеть
  103. network = input_data(shape=[None, 64, 64, 1], name='Input')
  104.  
  105. network = conv_2d(network, 32, 3, activation='relu', regularizer="L2") #сверточный слой с окошком 3
  106. network = max_pool_2d(network, 2) #пул с окошком 2
  107. network = local_response_normalization(network) #слой нормализации
  108.  
  109. network = conv_2d(network, 64, 3, activation='relu', regularizer="L2") #сверточный слой с окошком 3
  110. network = max_pool_2d(network, 2) #пул с окошком 2
  111. network = local_response_normalization(network) #слой нормализации
  112.  
  113. network = fully_connected(network, 128, activation='tanh') #слой полносвязной сети
  114. network = dropout(network, 0.8) #приводит сигнал к виду вход/0.8
  115.  
  116. network = fully_connected(network, 256, activation='tanh') #слой полносвязной сети
  117. network = dropout(network, 0.8) #приводит сигнал к виду вход/0.8
  118.  
  119. network = fully_connected(network, 2, activation='softmax') #слой полносвязной сети
  120. network = regression(network, optimizer='adam', learning_rate=0.01, #слой регрессии
  121. loss='categorical_crossentropy', name='Target')
  122.  
  123. print ("Network is built")
  124.  
  125. # Обучение
  126. trainer = tflearn.DNN(network, tensorboard_verbose=0) #тренер
  127. trainer.fit({'Input': X}, {'Target': Y}, n_epoch=1, #обучающая выборка
  128. validation_set=({'Input': Xtest}, {'Target': Ytest}), #проверочная выборка
  129. snapshot_step=100, show_metric=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement