当我将 `keras.datasets.cifar10` 与 model.fit 一起使用时,它会生成错误

When I use `keras.datasets.cifar10` with model.fit it generates error

我想知道keras.datasettfds.load的区别。当我使用下面的代码时它工作正常,比如:

train_dataset, val_dataset = tfds.load( "tf_flowers", split=["train[:90%]", "train[90%:]"], as_supervised=True )

model.fit(train_dataset, validation_data=val_dataset, epochs=NUM_EPOCHS)

但是当我将模式拟合代码与 keras.datasets 一起使用时,它会生成错误“ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或a.all()"

(x_train, y_train), (x_test, y_test) = keras.datasets.cifar100.load_data()

model.fit(x_train, validation_data=y_train, epochs=NUM_EPOCHS)

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Link 我的 google colab 代码是 HERE.

因为 tfds.load(.... , as_supervised=True ) returns 数据集 (tf.data) 已经包含了 img 和 label,但是 keras.datasets.cifar100.load_data() 给你的只是数组(img 和 label),所以它应该是这样的:

model.fit(x=x_train, y=y_train, validation_data=(x_test, y_test), epochs=NUM_EPOCHS)