Python 输入形状为[?,40,1,8]的“max_Poolg2D_14/MaxPool”(op:“MaxPool”)从1中减去2导致的负维度大小
我正在做一个机器学习项目,涉及用卷积神经网络对狗进行分类。我正在Keras建立自己的神经网络,使用转移学习和预先训练的Exception神经网络。在创建神经网络的过程中,我遇到了以下错误: 从1中减去2导致的负尺寸标注大小 “max_Poolg2D_2/MaxPool”op:“MaxPool”带有输入形状: [?,1,1,40] 下面是我用来加载数据集和训练模型的代码。请注意:我没有访问Exception神经网络的权限;因此,我不能简单地将模型的输出张量添加到我的模型中Python 输入形状为[?,40,1,8]的“max_Poolg2D_14/MaxPool”(op:“MaxPool”)从1中减去2导致的负维度大小,python,keras,Python,Keras,我正在做一个机器学习项目,涉及用卷积神经网络对狗进行分类。我正在Keras建立自己的神经网络,使用转移学习和预先训练的Exception神经网络。在创建神经网络的过程中,我遇到了以下错误: 从1中减去2导致的负尺寸标注大小 “max_Poolg2D_2/MaxPool”op:“MaxPool”带有输入形状: [?,1,1,40] 下面是我用来加载数据集和训练模型的代码。请注意:我没有访问Exception神经网络的权限;因此,我不能简单地将模型的输出张量添加到我的模型中 ### TODO: Ob
### TODO: Obtain bottleneck features from another pre-trained CNN.
bottleneck_features = np.load('/data/bottleneck_features/DogXceptionData.npz')
train_Xception = bottleneck_features['train']
valid_Xception = bottleneck_features['valid']
test_Xception = bottleneck_features['test']
### TODO: Define your architecture.
import keras
print(keras.__version__)
transfertrained_model = Sequential()
transfertrained_model.add(Conv2D(20,(2,2),input_shape=(train_Xception.shape[1],train_Xception.shape[2],3)))
transfertrained_model.add(Conv2D(40,(2,2)))
transfertrained_model.add(MaxPooling2D())
transfertrained_model.add(Conv2D(40,(2,2)))
transfertrained_model.add(MaxPooling2D())
transfertrained_model.add(Conv2D(80,(2,2)))
transfertrained_model.add(MaxPooling2D())
transfertrained_model.add(GlobalAveragePooling2D())
transfertrained_model.add(Dense(133))
transfertrained_model.add(Activation('sigmoid'))
transfertrained_model.summary()
设立:
Python 3
Keras 2.0.9
我已经读过的问题
GitHub上的一篇帖子建议我应该使用Keras2API。因为我是,这个建议不适用于我
另一个StackOverflow回答建议我首先将数据\u格式设置为通道\u。我这样做了,然后MaxPoolig2D层抱怨同样的错误
请帮忙 啊!我找到了答案。我需要在Conv2D层中添加padding='same',以防止它们减小输出张量的大小。我可以做些什么来改进我的问题?