在文档中,他们建议使用此行来加载 mnist
:
from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
如果您不使用元组或列表,则会引发错误:
ValueError: not enough values to unpack (expected 4, got 2)
它也适用于列表。为什么使用元组或列表如此重要?有了sklearn
,使用起来不是问题
X_train, X_test, y_train, y_test = train_test_split(X, y)
那么为什么它不能在这里工作呢?
最佳答案
如果你看 keras.mnist.load_data()
它只是准确地返回两个元组。因此,您需要恰好两个元组或列表才能正确进行解包。
但是如果你看看 scikit.model_selection.train_test_split
,它通过使用 itertools.chain
从可迭代对象创建一条链来巧妙地做到这一点。 ,它允许您使用四个元素进行解包。
如果你想要keras.mnist.load_data()
要以类似方式工作,请执行以下操作。
from itertools import chain
x1, y1, x2, y2 = chain.from_iterable(tf.keras.datasets.mnist.load_data())
关于python - 为什么用一对元组加载 Keras MNIST 如此重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59367153/