CNN Archicture с керасом - PullRequest
1 голос
/ 06 мая 2019

Я работаю с проблемой двоичной классификации с Python (керас).

моя архитектура сети CNN приведена ниже:

    def CNN():
      model = Sequential()
      model.add(Conv2D(64, kernel_size=(1, 3), activation='elu', padding='valid', input_size=(20,10, 1)))
      model.add(Conv2D(32, kernel_size=(1, 3), activation='elu', padding='valid'))
      model.add(Conv2D(16, kernel_size=(1, 3), activation='elu', padding='valid'))

      model.add(Flatten())
      model.add(Dense(512, activation='elu'))
      model.add(Dense(512, activation='sigmoid'))

Теперь я пытаюсь описать мою архитектуру CNN в таблице: у меня есть одномерный набор данных с 200 столбцами 200 000 строк.

Размер партии = 64

CNN 1 - канал 64 CNN 2 - канал 32 CNN 3 - канал 16

FC1 - 500 единиц FC2 - 1 единица

Здесь я пытаюсь описать архитектуру в таблице (проблема в этом разделе)

- CNN1 - CNN2 - CNN3 - FC1 - FC2

Input_Shape-- 64 * 64* 200 * 1 - 32 * 64 * 200 * 1 - 16 * 64 * 200 * 1 - 16 * 64 * 200 * 1 * 500 - 16 * 64 * 200 * 1 * 500

Output_Shape- 32 * 64 * 200 * 1 - 16 * 64 * 200 * 1 - 16 * 64 * 200 * 1 - 16 * 64 * 200 * 1 * 500 - 1

Мне трудно определитьправильная форма ввода-вывода моей сети, обращаясь за помощью.Спасибо.

1 Ответ

2 голосов
/ 06 мая 2019

Форма ввода для стандартного CNN для классификации изображений в Керасе выглядит следующим образом:

input_shape = ( batch_size , height , width , num_channels )

1-й слой Conv2D будет иметь форму ввода:

img_height = 20
img_width = 10
num_channels = 1

model.add(Conv2D(64, kernel_size=(1, 3), activation='elu', padding='valid', 
input_size=(img_height,img_width, num_channels)))

Поскольку вы выполняете двоичную классификацию , последний слой Dense будет выглядеть следующим образом:

model.add(Dense(1, activation='sigmoid'))

Кроме того, в качестве бонуса компиляция модели будет выглядеть следующим образом:

model.compile( loss='binary_crossentropy' , optimizer='adam' , metrics=['accuracy'] )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...