【发布时间】:2021-11-21 16:05:21
【问题描述】:
我想构建一个具有以下架构的卷积模型:
CONV2D -> RELU -> MAXPOOL -> CONV2D -> RELU -> MAXPOOL -> 展平 -> DENSE
参数:
input_img -- 输入数据集,形状 (input_shape)
Returns:
model -- TF Keras model (object containing the information for the entire training process)
所以这是我到目前为止所做的代码:
def convolutional_model(input_shape):
input_img = tf.keras.Input(shape=input_shape)
## CONV2D: 8 filters 4x4, stride of 1, padding 'SAME'
Z1 = tf.nn.conv2d(input_img,filters=8 ,strides=[1, 1, 1, 1], padding='SAME')
## RELU
A1 = tf.nn.relu(Z1)
## MAXPOOL: window 8x8, stride 8, padding 'SAME'
P1 = tf.nn.max_pool(A1, ksize = [1, 8, 8, 1], strides = [1, 8, 8, 1], padding='SAME')
## CONV2D: 16 filters 2x2, stride 1, padding 'SAME'
Z2 = tf.nn.conv2d(P1, strides=[1, 1, 1, 1], padding='SAME')
## RELU
A2 = tf.nn.relu(Z2)
## MAXPOOL: window 4x4, stride 4, padding 'SAME'
P2 = tf.nn.max_pool(A2, ksize = [1, 4, 4, 1], strides = [1, 4, 4, 1], padding='SAME')
## FLATTEN
F = tf.contrib.layers.flatten(P2)
## Dense layer
## 6 neurons in output layer. Hint: one of the arguments should be "activation='softmax'"
outputs = tf.contrib.layers.fully_connected(P, 6, activation_fn='softmax')
model = tf.keras.Model(inputs=input_img, outputs=outputs)
return model
我收到以下错误:
ValueError: Shape must be rank 4 but is rank 0 for '{{node Conv2D_5}} = Conv2D[T=DT_FLOAT, data_format="NHWC", dilations=[1, 1, 1, 1], explicit_paddings=[], padding="SAME", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true](input_10, Conv2D_5/filter)' with input shapes: [?,64,64,3], [].
有人可以帮忙吗? 如果我的代码中有任何其他错误,请对它们发表评论,我一直在为 Coursera Deeplearning 规范课程上的这项作业而苦苦挣扎
【问题讨论】:
标签: python tensorflow keras conv-neural-network