TensorFlow中Flatten层input_shape参数含义及文档缺失原因咨询
关于tf.keras.layers.Flatten的input_shape参数解答
问题1:仅依据官方文档,如何得知Flatten层支持input_shape参数?
tf.keras.layers.Flatten是Keras所有层的基类Layer的子类,而input_shape是所有Keras层都支持的通用参数,并非Flatten层特有。所有Keras层的共性参数都会在基类Layer的官方文档中统一说明,你只需查看基类文档就能确认这个参数是所有层的标配:
- 当Flatten作为模型的第一层时,必须指定
input_shape(不含batch维度),用来让模型确定输入张量的形状,后续层才能据此计算参数; - 如果Flatten不是第一层,它会自动承接前一层的输出形状,此时无需显式指定
input_shape。
问题2:该参数为何未被文档收录?
官方文档的排版逻辑是:只在基类Layer的文档中统一列出所有层的通用参数(比如input_shape、name、trainable等),各个子类层的文档只会聚焦于自身特有的参数和功能。Flatten层的核心功能是将多维张量展平为一维,input_shape属于基类继承来的通用配置,因此不会在Flatten的单独文档中重复说明。
额外补充:你看到的tf.keras.layers.Flatten(input_shape=(28, 28))写法,是把Flatten作为模型的第一层使用,用来接收28x28的单通道图像输入(MNIST灰度图默认通道数为1,Keras会自动补全该维度)。
内容的提问来源于stack exchange,提问作者Ian Boyd
相关产品推荐
相关产品推荐

