나는 CNN과 이진 분류 모델을 훈련 한 여기Keras, 각 레이어의 출력을 얻는 방법?
model = Sequential()
model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1],
border_mode='valid',
input_shape=input_shape))
model.add(Activation('relu'))
model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=pool_size))
# (16, 16, 32)
model.add(Convolution2D(nb_filters*2, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(Convolution2D(nb_filters*2, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=pool_size))
# (8, 8, 64) = (2048)
model.add(Flatten())
model.add(Dense(1024))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(2)) # define a binary classification problem
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy',
optimizer='adadelta',
metrics=['accuracy'])
model.fit(x_train, y_train,
batch_size=batch_size,
nb_epoch=nb_epoch,
verbose=1,
validation_data=(x_test, y_test))
그리고 여기가, 난 그냥 TensorFlow 같은 각 층의 출력을 얻을 싶어 내 코드는 내가 그렇게 할 수있는 방법인가?
si r, 당신의 대답은 좋다.'당신의 코드에서 K.function ([inp] + [K.learning_phase()], [out])'은 무엇을 의미합니까? –
우수 답변 인'np.random.random (input_shape) [np.newaxis, ...]'도'np.random.random (input_shape) [np.newaxis, :]'로 쓸 수 있습니다. – Tom
K가 무엇입니까? 기능? 어떻게 GPU (MPI?)로 넘어 갔습니까? 현장 뒤에 뭐가 있니? CUDA와의 대화 방법은 무엇입니까? 소스 코드는 어디에 있습니까? –