keras vgg 16 形状错误
keras vgg 16 shape error
我正在尝试将具有以下形状的数据拟合到预训练的 keras vgg19 模型中。
图像输入形状是(32383, 96, 96, 3)
标签形状是 (32383, 17)
我得到了这个错误
expected block5_pool to have 4 dimensions, but got array with shape (32383, 17)
在这一行
model.fit(x = X_train, y= Y_train, validation_data=(X_valid, Y_valid),
batch_size=64,verbose=2, epochs=epochs,callbacks=callbacks,shuffle=True)
这是我定义模型的方式
model = VGG16(include_top=False, weights='imagenet', input_tensor=None, input_shape=(96,96,3),classes=17)
maxpool 怎么给我一个 2d 张量而不是 4D 张量?我使用的是来自 keras.applications.vgg16 的原始模型。我该如何解决这个错误?
您的问题来自 VGG16(include_top=False,...)
,因为这使得您的解决方案只能加载 VGG 的卷积部分。这就是为什么 Keras
抱怨它得到的是 2 维输出而不是 4 维输出(4 维来自卷积输出具有形状 (nb_of_examples, width, height, channels)
的事实)。为了克服这个问题,你需要设置 include_top=True
或添加额外的层来压缩卷积部分 - 到 2d
一个(例如使用 Flatten
, GlobalMaxPooling2D
,GlobalAveragePooling2D
和一组 Dense
层 - 包括最后一个应该是 Dense
大小为 17 和 softmax
激活函数)。
我正在尝试将具有以下形状的数据拟合到预训练的 keras vgg19 模型中。
图像输入形状是(32383, 96, 96, 3)
标签形状是 (32383, 17)
我得到了这个错误
expected block5_pool to have 4 dimensions, but got array with shape (32383, 17)
在这一行
model.fit(x = X_train, y= Y_train, validation_data=(X_valid, Y_valid),
batch_size=64,verbose=2, epochs=epochs,callbacks=callbacks,shuffle=True)
这是我定义模型的方式
model = VGG16(include_top=False, weights='imagenet', input_tensor=None, input_shape=(96,96,3),classes=17)
maxpool 怎么给我一个 2d 张量而不是 4D 张量?我使用的是来自 keras.applications.vgg16 的原始模型。我该如何解决这个错误?
您的问题来自 VGG16(include_top=False,...)
,因为这使得您的解决方案只能加载 VGG 的卷积部分。这就是为什么 Keras
抱怨它得到的是 2 维输出而不是 4 维输出(4 维来自卷积输出具有形状 (nb_of_examples, width, height, channels)
的事实)。为了克服这个问题,你需要设置 include_top=True
或添加额外的层来压缩卷积部分 - 到 2d
一个(例如使用 Flatten
, GlobalMaxPooling2D
,GlobalAveragePooling2D
和一组 Dense
层 - 包括最后一个应该是 Dense
大小为 17 和 softmax
激活函数)。