我是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只是忽略我的价值观并插入神经元,或者我不明白模型的构建方式。
感谢帮助
第一层有784个权重,第二层有1个,第三层有10个。这总共有795个权重。
虽然它不是一个很好的网络设计,因为你在第二层丢失了很多信息,但单个权重可以包含相当多的数据。
可以这样想,如果你构建一个有2层的网络:输入和输出。输出的值如果在0-0.1之间,你给它一个标签类1 0.1-0.2 - > class 2,依此类推。您应该能够获得与您的网络类似的结果。
顺便说一句50%正确的分类对于mnist来说真的很糟糕。我通常得到99%左右