在Python中使用适当的超参数训练MNIST模型

在Python中使用适当的超参数训练MNIST模型,python,tensorflow,keras,Python,Tensorflow,Keras,这是我的代码,我不知道为什么它给了我0.3%的准确率 有人能告诉我这个代码有什么问题吗 def列列表(): mnist=tf.keras.datasets.mnist (x_列,y_列),(x_测试,y_测试)=列表负载数据() x_系列,x_测试=x_系列/255.0,x_测试/255.0 模型=tf.keras.models.Sequential([ tf.keras.layers.Flatten(输入_形状=(28,28)), tf.keras.layers.Dense(128,活化='r

这是我的代码,我不知道为什么它给了我0.3%的准确率

有人能告诉我这个代码有什么问题吗

def列列表():
mnist=tf.keras.datasets.mnist
(x_列,y_列),(x_测试,y_测试)=列表负载数据()
x_系列,x_测试=x_系列/255.0,x_测试/255.0
模型=tf.keras.models.Sequential([
tf.keras.layers.Flatten(输入_形状=(28,28)),
tf.keras.layers.Dense(128,活化='relu'),
tf.keras.层压降(0.2),
tf.keras.致密层(10)
])
model.compile(优化器='adam',
损失=“稀疏”\u分类”\u交叉熵',
指标=[‘准确度’])
历史=模型.fit(x_系列,y_系列,历代=5)
返回history.epoch,history.history['acc'][-1]
列车时刻表()

非常感谢这会有用的!试试这个

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)


model.compile(optimizer='adam',
              loss=loss_fn,
              metrics=['accuracy'])

这会有用的!试试这个

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)


model.compile(optimizer='adam',
              loss=loss_fn,
              metrics=['accuracy'])

问题似乎是你失去了功能

试试这个:

方法1

您可以使用
categorical\u crossentropy
作为损失,但最后一层应该是

tf.keras.layers.Dense(10,activation='softmax')
然后

model.compile(optimizer = 'adam', 
              loss"categorical_crossentropy", 
              metrics=["accuracy"])
方法2

在您的例子中,需要定义
sparse\u categorical\u crossentropy
损失

tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True,name='sparse_categorical_crossentropy')

要了解这两者的区别,请参见

,问题似乎在于损失函数

试试这个:

方法1

您可以使用
categorical\u crossentropy
作为损失,但最后一层应该是

tf.keras.layers.Dense(10,activation='softmax')
然后

model.compile(optimizer = 'adam', 
              loss"categorical_crossentropy", 
              metrics=["accuracy"])
方法2

在您的例子中,需要定义
sparse\u categorical\u crossentropy
损失

tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True,name='sparse_categorical_crossentropy')

要理解这两者的区别,请看

我想这不是你想要的,但它可能会帮助某人:卷积神经网络将是最好的选择。我想这不是你想要的,但它可能会帮助某人:卷积神经网络将是最好的选择。