Advertisement
Step8rother

Архитектура LeNet, задача 2

Jul 9th, 2023 (edited)
1,079
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.27 KB | Source Code | 0 0
  1. '''Постройте архитектуру LeNet, изучив её описание в формате функции summary():
  2. Model: "sequential"
  3. _________________________________________________________________
  4. Layer (type)                 Output Shape              Param #  
  5. =================================================================
  6. conv2d (Conv2D)              (None, 28, 28, 6)         156      
  7. _________________________________________________________________
  8. average_pooling2d (AveragePo (None, 14, 14, 6)         0        
  9. _________________________________________________________________
  10. conv2d_1 (Conv2D)            (None, 10, 10, 16)        2416      
  11. _________________________________________________________________
  12. average_pooling2d_1 (Average (None, 5, 5, 16)          0        
  13. _________________________________________________________________
  14. flatten (Flatten)            (None, 400)               0        
  15. _________________________________________________________________
  16. dense (Dense)                (None, 120)               48120    
  17. _________________________________________________________________
  18. dense_1 (Dense)              (None, 84)                10164    
  19. _________________________________________________________________
  20. dense_2 (Dense)              (None, 10)                850      
  21. =================================================================
  22. Функция активации во всех слоях, кроме последнего, — гиперболический тангенс (англ. hyperbolic tangent). Сети с такой активацией обучаются лучше сетей с сигмоидой. Превзойти 'tanh' может только ReLU, но на момент разработки LeNet она ещё не применялась.
  23. Вызовите функцию summary(). Запустите обучение на одном объекте, чтобы убедиться в работоспособности кода (уже в прекоде).
  24. '''
  25.  
  26. from tensorflow.keras import Sequential
  27. from tensorflow.keras.layers import Conv2D, Flatten, Dense, AvgPool2D
  28. import matplotlib.pyplot as plt
  29. import numpy as np
  30.  
  31.  
  32. features_train = np.load('/datasets/fashion_mnist/train_features.npy')
  33. target_train = np.load('/datasets/fashion_mnist/train_target.npy')
  34. features_test = np.load('/datasets/fashion_mnist/test_features.npy')
  35. target_test = np.load('/datasets/fashion_mnist/test_target.npy')
  36.  
  37.  
  38. features_train = features_train.reshape(-1, 28, 28, 1) / 255.0
  39. features_test = features_test.reshape(-1, 28, 28, 1) / 255.0
  40.  
  41. model = Sequential()
  42.  
  43. model.add(Conv2D(filters=6, kernel_size=(5, 5), padding='same', activation='tanh', input_shape=(28, 28, 1)))
  44. model.add(AvgPool2D(pool_size=(2, 2)))
  45.  
  46. model.add(Conv2D(filters=16, kernel_size=(5, 5), activation='tanh', input_shape=(28, 28, 1)))
  47. model.add(AvgPool2D(pool_size=(2, 2)))
  48.  
  49. model.add(Flatten())
  50. model.add(Dense(units=120, activation='tanh'))
  51. model.add(Dense(units=84, activation='tanh'))
  52. model.add(Dense(units=10, activation='softmax'))
  53.  
  54. model.compile(loss='sparse_categorical_crossentropy', optimizer='sgd', metrics=['acc'])
  55. model.summary()
  56.  
  57. model.fit(features_train, target_train, epochs=1, verbose=1, steps_per_epoch=1, batch_size=1)
  58.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement