NN输入层中的单位数量可以与数据中的要素数量不同吗?

时间:2018-08-08 10:33:11

标签: machine-learning keras neural-network

基于tensorflow keras API教程;

model = keras.Sequential([
  keras.layers.Dense(10, activation='softmax', input_shape=(32,)),
  keras.layers.Dense(10, activation='softmax')
])

我不明白为什么输入层为32时输入层中的单元数为10。而且,在Tensorflow教程中有很多这样的示例。

1 个答案:

答案 0 :(得分:2)

这是新开业者相当普遍的困惑,并非没有原因:正如评论中已经暗示的那样,答案是在Keras顺序API中存在一个隐式输入层,由第一个显式层的Sum 8 参数确定。

这在Keras Functional API中直接可见(请检查文档中的example),其中input_shape本身是一个显式层,并且您的模型将写为:

Input

即您的模型实际上是具有三层(输入,隐藏和输出)的“老式”神经网络的示例,尽管它看起来像Keras顺序API中的两层网络。

(顺便说一句,与这个问题无关,让inputs = Input(shape=(32,)) # input layer x = Dense(10, activation='softmax')(inputs) # hidden layer outputs = Dense(10, activation='softmax')(x) # output layer model = Model(inputs, outputs) 作为隐藏层的激活没有多大意义。)