Keras是否构建了具有错误神经元数量的模型?

问题描述 投票:0回答:1

我是Keras的新手。我创建了我的模型以与Fashion MNIST一起工作

这是我的模型:

model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(1),
keras.layers.Dense(1),
keras.layers.Dense(10, activation=tf.nn.softmax)])

model.compile(optimizer= 'sgd', 
          loss='sparse_categorical_crossentropy',
          metrics=['acc'])

据我所知,这段代码应该构建这个模型

Flattener 28x28至1x784

密集的1个神经元= 1x784 | out = 1x1

密集的1个神经元= 1x1 | out = 1x10

密集的1个神经元= 1x10 | out = 1x10(10课)

问题是该模型在60k例子上给出了50%的准确率。它不可能是真的吗?这1个神经元层和1个权重无法提供信息来很好地对图像进行分类。

它的任何一个Keras只是忽略我的价值观并插入神经元,或者我不明白模型的构建方式。

感谢帮助

python tensorflow keras neural-network
1个回答
0
投票

第一层有784个权重,第二层有1个,第三层有10个。这总共有795个权重。

虽然它不是一个很好的网络设计,因为你在第二层丢失了很多信息,但单个权重可以包含相当多的数据。

可以这样想,如果你构建一个有2层的网络:输入和输出。输出的值如果在0-0.1之间,你给它一个标签类1 0.1-0.2 - > class 2,依此类推。您应该能够获得与您的网络类似的结果。

顺便说一句50%正确的分类对于mnist来说真的很糟糕。我通常得到99%左右

© www.soinside.com 2019 - 2024. All rights reserved.