我想知道keras.dataset
和tfds.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.a any()或a.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()
链接到我的google colab代码在这里。
因为tfds.load(.... , as_supervised=True )
返回的数据集(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)