Tensorflow 为什么编译时会显示这些错误消息

Tensorflow 为什么编译时会显示这些错误消息,tensorflow,keras,Tensorflow,Keras,我试图编译Keras模型来训练和测试数据集。但在编译过程中,会显示以下错误消息。谁能帮我解决这个问题?我一直在查看其他页面并遵循他们的建议,但没有一个能真正帮助我解决这个问题 model = tf.keras.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation="relu"), # Rectified Linear Unit. t

我试图编译Keras模型来训练和测试数据集。但在编译过程中,会显示以下错误消息。谁能帮我解决这个问题?我一直在查看其他页面并遵循他们的建议,但没有一个能真正帮助我解决这个问题

model = tf.keras.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation="relu"), # Rectified Linear Unit.
    tf.keras.layers.Dense(10, activation="softmax")
model.compile(optimizer="adam", loss="sparse_categorial_crossentropy", metrics=["accuracy"])
当我尝试编译和运行时,会出现以下行

Traceback (most recent call last):
  File "/home/eaindra/PycharmProjects/NeuralNetwork/Tensorflow1.py", line 42, in <module>
    model.compile(optimizer="adam", loss="sparse_categorial_crossentropy", metrics=["accuracy"])
  File "/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site-packages/tensorflow_core/python/training/tracking/base.py", line 457, in _method_wrapper
    result = method(self, *args, **kwargs)
  File "/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site-packages/tensorflow_core/python/keras/engine/training.py", line 336, in compile
    self.loss, self.output_names)
  File "/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site-packages/tensorflow_core/python/keras/engine/training_utils.py", line 1351, in prepare_loss_functions
    loss_functions = [get_loss_function(loss) for _ in output_names]
  File "/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site-packages/tensorflow_core/python/keras/engine/training_utils.py", line 1351, in <listcomp>
    loss_functions = [get_loss_function(loss) for _ in output_names]
  File "/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site-packages/tensorflow_core/python/keras/engine/training_utils.py", line 1087, in get_loss_function
    loss_fn = losses.get(loss)
  File "/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site-packages/tensorflow_core/python/keras/losses.py", line 1183, in get
    return deserialize(identifier)
  File "/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site-packages/tensorflow_core/python/keras/losses.py", line 1174, in deserialize
    printable_module_name='loss function')
  File "/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site-packages/tensorflow_core/python/keras/utils/generic_utils.py", line 210, in deserialize_keras_object
    raise ValueError('Unknown ' + printable_module_name + ':' + object_name)
ValueError: Unknown loss function:sparse_categorial_crossentropy
回溯(最近一次呼叫最后一次):
文件“/home/eaindra/PycharmProjects/NeuralNetwork/Tensorflow1.py”,第42行,在
compile(optimizer=“adam”,loss=“sparse\u categorial\u crossentropy”,metrics=[“accurity”])
文件“/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site packages/tensorflow\u core/python/training/tracking/base.py”,第457行,在方法包装中
结果=方法(自身、*args、**kwargs)
文件“/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site packages/tensorflow_core/python/keras/engine/training.py”,第336行,编译
self.loss,self.output_名称)
文件“/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site packages/tensorflow\u core/python/keras/engine/training\u utils.py”,第1351行,在prepare\u loss\u函数中
loss_functions=[get_loss_function(loss)for u in output_name]
文件“/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site packages/tensorflow_core/python/keras/engine/training_utils.py”,第1351行
loss_functions=[get_loss_function(loss)for u in output_name]
文件“/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site packages/tensorflow\u core/python/keras/engine/training\u utils.py”,第1087行,在get\u loss\u函数中
损失=损失。获取(损失)
get中的文件“/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site packages/tensorflow_core/python/keras/loss.py”,第1183行
返回反序列化(标识符)
文件“/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site packages/tensorflow_core/python/keras/loss.py”,第1174行,反序列化
可打印\u模块\u name='loss function')
文件“/home/eaindra/anaconda3/envs/tensor/lib/python3.6/site packages/tensorflow\u core/python/keras/utils/generic\u utils.py”,第210行,在反序列化\u keras\u对象中
raise VALUERROR('未知'+可打印的模块名称+':'+对象名称)
ValueError:未知损失函数:稀疏\u分类\u交叉熵

这似乎是
丢失功能的输入错误。您编写了
categorial
而不是
categorial
,并且在模型定义中遗漏了结束方括号。 固定代码段附在下面

model = tf.keras.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation="relu"), # Rectified Linear Unit.
    tf.keras.layers.Dense(10, activation="softmax")])

model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"])
讨论似乎与你的问题有关