我用CNN训练了一个二分类模型,这是我的代码
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一样获取每一层的输出,应该怎么做?
K.function([inp]+ [K.learning_phase()],[out])
是什么意思呢? - GoingMyWayK.function
来构建预测函数在这里,并在预测循环中使用它在这里。如果未设置batch size,则预测将循环默认大小为32,但这是为了缓解GPU内存的限制。因此我不确定您为什么观察到model.predict
更快。 - indraforyouValueError("Tensor %s is not an element of this graph." % obj)
。我的张量对象是Tensor("data:0", shape=(?, 224, 224, 3), dtype=float32)
。 - Ramesh-Xtf.keras.Input
。接收到:0(缺少先前层的元数据)。简单模型:inputs = tf.keras.layers.Input(shape=input_shape) x = tf.keras.layers.Dense(256, activation=None)(inputs) model = tf.keras.Model(inputs=inputs, outputs=x)。TensorFlow 版本为 2.5.0。只有第一个方法有效。 - Krzysztof Maliszewski