python-3.x - 如何在 Keras 中使用 maxPooling 和卷积层修复 ValueError?
问题描述
_input = tf.keras.layers.Input(shape=(512, 384, 3))
conv1 = tf.keras.layers.Conv2D(1024, kernel_size=(512, 384), strides=(32, 32),activation=tf.nn.relu)(_input)
#until here it works fine
maxPooling = tf.keras.layers.MaxPool2D(pool_size=(2, 2))(conv1)
conv2 = tf.keras.layers.Conv2D(128, kernel_size=(64, 48),
strides=(16, 12), activation=tf.nn.relu)(maxPooling)
avrePooling = tf.keras.layers.AveragePooling2D(pool_size=(8, 8))(conv2)
conv3 = tf.keras.layers.Conv2D(128, kernel_size=(64, 64),
strides=(16, 16), activation=tf.nn.relu)(avrePooling)
flatten = tf.keras.layers.Flatten()(conv3)
dense1 = tf.keras.layers.Dense(256, activation=tf.nn.relu)(flatten)
dense2 = tf.keras.layers.Dense(1024, activation=tf.nn.relu)(dense1)
dense3 = tf.keras.layers.Dense(512, activation=tf.nn.relu)(dense2)
dense4 = tf.keras.layers.Dense(256, activation=tf.nn.relu)(dense3)
_output = tf.keras.layers.Dense(trainY.shape[1], activation=tf.nn.relu)(dense4) #trainY.shape[1] = 3
在 conv1 层之后,我收到此错误:
ValueError:由 1 减去 2 导致的负尺寸大小,用于输入形状为 [?,1,1,1024] 的“max_pooling2d/MaxPool”(操作:“MaxPool”)。当我删除该行时,在下一行中再次出现相同的错误。
解决方案
推荐阅读
- reactjs - 使用 GastbyJS + Storefront API 在 shopify 主题中包含 App Liquid
- openai-gym - space.Discrete 是否适合表示整数范围?
- python - 从函数到函数的 Python 访问变量
- swift - SwiftUi 有没有办法在 TextField 中获取文本
- c# - 如何在 Asp.Net Core 应用程序中实现可观察性(如 Charity Majors 所述)?
- c - 如何为具有未知变量大小的成员的结构分配内存?
- javascript - Vue 在隐藏元素之前渲染元素
- iis - Blazor 在 IIS 中部署项目
- php - 如何使我添加的产品低于总价?
- json - 在控制器中获取阻止渲染模板