🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
对于前面用过的Dense层的堆叠,每层**只能**访问**上一层**输出的信息。 如果某一层**丢失**了与分类问题相关的一些信息,那么这些信息无法被后面的层找回,也就是说,**每一层都可能成为信息瓶颈**。 上一个例子使用了16维的中间层,但对这个例子来说16维空间可能太小了,无法学会区分46个不同的类别。 这种维度较小的层可能成为信息瓶颈,永久地丢失相关信息。 出于这个原因,**下面将使用维度更大的层**,包含64个单元。 ***** ~~~ model.add(layers.Dense(64, activation='relu', input_shape=(10000,))) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(46, activation='softmax')) ~~~ ***** * 网络的最后一层是大小为 46 的`Dense`层。这意味着,对于每个输入样本,网络**都会输出**一个 46 维向量。这个向量的每个元素(即每个维度)代表不同的输出类别。 * **最后一层使用了`softmax`激活**。你在 MNIST 例子中见过这种用法。网络将输出在 46 个不同输出类别上的**概率分布**——对于每一个输入样本,网络都会输出一个 46 维向量,其中`output[i]`是样本属于第`i`个类别的**概率**。 * **46 个概率的总和为 1**。 * ***** `categorical_crossentropy`(分类交叉熵):衡量两个**概率分布**之间的**距离**,这里两个概率分布分别是**网络输出**的概率分布和标签的**真实**分布。~~将这两个分布的距离最小化~~