为何从同一MNIST数据集拆分的x_train与y_train形状不一致?
MNIST数据集
x_train与y_train形状差异原因 你使用的数据集加载代码及输出如下:
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data() print(x_train.shape) >>> (60000, 28, 28) print(y_train.shape) >>> (60000,)
二者形状不同是因为存储的内容和作用完全不同,具体原因如下:
x_train是特征数据集,存储所有训练用的输入图片数据:
第一个维度60000代表训练集总共有6万张图片;MNIST的每张图片是28×28像素的灰度图,每个图片的像素值用28行28列的二维矩阵存储,因此后两个维度分别对应图片的高度和宽度,最终形状为(60000, 28, 28)。y_train是标签数据集,存储每张训练图片对应的真实数字标注:
第一个维度60000同样对应6万张训练样本;每张图片只需要一个0-9的标量值就能表示对应的真实数字,没有额外的维度需求,因此是长度为60000的一维数组,Numpy中一维数组的形状默认表示为(60000,)。
内容的提问来源于stack exchange,提问作者Ayesha Mustafa
相关产品推荐
相关产品推荐

