python - 为什么用一对元组加载 Keras MNIST 如此重要?

标签 python keras

在文档中,他们建议使用此行来加载 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/

相关文章:

python - 在Python中向基类添加实例变量

python - 为什么 exec() 在 python 上针对 -5 以下分配不同的 id?

Python:使用 range() 和 "".join()

python - 将 matplotlib 动画保存为 mp4

tensorflow - 加载模型后 Keras 精度低

azure - AzureML 上没有库 cv2

tensorflow - 在 Keras 中添加自定义激活函数

python - wxpython的列表控件中的删除

keras - 使用 Keras 跟踪多个损失

keras - .fit() 层的 shuffle = 'batch' 参数如何在后台工作?