为了账号安全,请及时绑定邮箱和手机立即绑定

向 CNN 添加完全连接的层

向 CNN 添加完全连接的层

小怪兽爱吃肉 2023-02-22 19:03:39
我想在这个 CNN 架构中添加一个全局平均池化层,然后是几个完全连接的层:img_input = layers.Input(shape=(img_size, img_size, 1))x = layers.Conv2D(16, (3,3), activation='relu', strides = 1, padding = 'same')(img_input)x = layers.MaxPool2D(pool_size=2)(x)x = layers.Conv2D(32, (3,3), activation='relu', strides = 2)(x)x = layers.MaxPool2D(pool_size=2)(x)x = layers.Conv2D(64, (3,3), activation='relu', strides = 2)(x)x = layers.MaxPool2D(pool_size=2)(x)x = layers.Conv2D(3, 5, activation='relu', strides = 2)(x)x = layers.Dense(200,activation='relu')x = layers.Dropout(0.1)output = layers.Flatten()(x)model = Model(img_input, output)model.summary()但是每当我尝试在 las Conv2D 层之后添加一个完全连接的层时,我都会收到以下错误:---------------------------------------------------------------------------AttributeError                            Traceback (most recent call last)<ipython-input-370-1cf54963b964> in <module>     11 x = layers.Dropout(0.1)     12 ---> 13 output = layers.Flatten()(x)     14      15 model = Model(img_input, output)/usr/local/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/base_layer.py in __call__(self, inputs, *args, **kwargs)    885         # Eager execution on data tensors.    886         with backend.name_scope(self._name_scope()):--> 887           self._maybe_build(inputs)    888           cast_inputs = self._maybe_cast_inputs(inputs)    889           with base_layer_utils.autocast_context_manager(/usr/local/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/base_layer.py in _maybe_build(self, inputs)   2120     if not self.built:   2121       input_spec.assert_input_compatibility(-> 2122           self.input_spec, inputs, self.name)   2123       input_list = nest.flatten(inputs)   2124       if input_list and self._dtype_policy.compute_dtype is None:我的数据集如下所示:print(X_train.shape, X_test.shape, Y_train.shape, Y_test.shape)(1600, 200, 200, 1) (400, 200, 200, 1) (1600, 3) (400, 3)我在这里错过了什么?
查看完整描述

1 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

当您使用函数式 API 时,您想要使用:

x = layers.Dense(200, activation='relu')(x)
x = layers.Dropout(0.1)(x)


查看完整回答
反对 回复 2023-02-22
  • 1 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信