我从TensorFlow官方网站的教程中复制粘贴了一行完全有效的代码,但在运行时却提示语法错误。
我尝试搜索这个问题,但不知为何并不是每个人都遇到相同的问题。
包含的包如下:
# TensorFlow and tf.kerasimport tensorflow as tffrom tensorflow import keras# Helper librariesimport numpy as npimport matplotlib.pyplot as pltfrom keras.datasets import mnist
我在以下这行代码中遇到了错误(语法错误):
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
我需要帮助来调试这个错误,否则我的代码无法运行。
完整代码如下:
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()class_names = ['0','1','2','3','4','5','6','7','8','9']print(train_images.shape)train_images = train_images / 255.0test_images = test_images / 255.0plt.figure(figsize=(10,10))for i in range(25): plt.subplot(5,5,i+1) plt.xticks([]) plt.yticks([]) plt.grid(False) plt.imshow(train_images[i], cmap=plt.cm.binary) plt.xlabel(class_names[train_labels[i]])plt.show()model = keras.Sequential([ keras.layers.Flatten(input_shape=(28, 28)), keras.layers.Dense(128, activation=tf.nn.sigmoid), keras.layers.Dense(10, activation=tf.nn.sigmoid)model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])"""# Load datasetmndata = MNIST('')images, labels = mndata.load_training()# Pick the fifth image from the dataset (it's a 9)i = 4image, label = images[i], labels[i]# Print the imageoutput = Image.new("L", (28, 28))output.putdata(image)output.save("output.png")# Print labelprint(label)"""
回答:
你需要在模型定义的末尾正确地关闭它,使用’])’。
model = keras.Sequential([ keras.layers.Flatten(input_shape=(28, 28)), keras.layers.Dense(128, activation=tf.nn.sigmoid), keras.layers.Dense(10, activation=tf.nn.sigmoid)])model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])