Python 如何在不制作模型的情况下使用Keras图层

Python 如何在不制作模型的情况下使用Keras图层,python,tensorflow,keras,keras-layer,keras-2,Python,Tensorflow,Keras,Keras Layer,Keras 2,我想使用Keras层而不制作模型。每次我看到与Keras相关的示例时,我都会看到它们以模型形式出现,如下所示: model = Sequential() model.add(Conv2D(2, kernel_size=(3, 3),activation='relu', input_shape=input_shape)) model.add(MaxPooling2D(pool_size=(2, 2))) .... model.compile(loss=keras

我想使用Keras层而不制作模型。每次我看到与Keras相关的示例时,我都会看到它们以模型形式出现,如下所示:

model = Sequential()
model.add(Conv2D(2, kernel_size=(3, 3),activation='relu',
                 input_shape=input_shape))
model.add(MaxPooling2D(pool_size=(2, 2)))
....

model.compile(loss=keras.losses.binary_crossentropy,
              optimizer=keras.optimizers.Adadelta(),
              metrics=['accuracy'])
model.fit(x_train, y_train,batch_size=batch_size,epochs=epochs,verbose=1,)

这样,我们首先定义
输入
,然后建模,然后
编译
,最后
拟合
。但假设我必须执行maxpooling操作,我只有一个大小为56*64的灰度图像,即以4d张量形式(1,56,64,1)输入。那么如何使用Keras
MaxPooling2D
layer执行maxpooling操作呢

您可以仅使用
MaxPooling2D
创建模型,并进行
预测(不使用
fit
):

编译
根本不起作用

完整代码 @Hitesh评论中的示例:

from keras.models import Sequential
from keras.layers import MaxPooling2D
import numpy as np

image=np.random.rand(1, 56, 64, 1)
input_shape=(56,64,1)

model = Sequential()
model.add(MaxPooling2D(pool_size=(2, 2), input_shape=input_shape))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])

pooled = model.predict(image)

您可以使用函数式API执行此操作:只需定义
input
,然后执行以下操作:

maxpooled = MaxPooling2D(...)(input)
maxpooled.eval(feed_dict={input: input_image}, session=...)

顺便说一句,使用Keras来实现这一点有点过分,因为它是一个用于构建
模型的工具包。使用tensorflow或任何其他深度学习框架,您无需keras即可轻松完成此操作。

我知道tf.nn.max_pool很有用,但我也不知道如何使用它。这一工作原理,示例代码如下:from keras.models import Sequential from keras.layers import maxpoolig2d import numpy as np image=np.rand(1,56,64,1)input_shape=(56,64,1)model=Sequential()model.add(MaxPooling2D(pool_size=(2,2),input_shape=input_shape))model.compile(loss='classifical_crossentropy',optimizer='rmsprop',metrics=['accurity'])pooled=model.predict(图像)你能看看我的问题吗:。我没有得到答案
maxpooled = MaxPooling2D(...)(input)
maxpooled.eval(feed_dict={input: input_image}, session=...)