作为我设置的Conv2D任务的一部分,我有一个训练集,它是shape(60000,28,28),它分别由训练图像的数量,x轴和y轴维度组成。在我正在进行的项目中,我被要求添加一个额外的维度,该维度将导致形状为(60000,28,28,1)。结果,一个图像也应该返回形状(28,28,1)。我试过images = training_images.reshape(60000, 28, 28, 1),但这似乎只返回形状为(60000,28,28),并没有返回额外的维度。
images = training_images.reshape(60000, 28, 28, 1)
tcbh2hod1#
您可以使用expand_dims在任何数组轴中添加大小为1的维度。
expand_dims
import numpy as np a = np.zeros((400, 28, 28)) b = np.expand_dims(a, axis=-1) b.shape > (400, 28, 28, 1)
或者,如果你需要一个更短的方式(例如在表达式中使用)
a = np.zeros((400, 28, 28)) a[..., np.newaxis].shape > (400, 28, 28, 1)
其中...表示数组的每个维度(就像写a[:, :, :, np.newaxis]一样)。如果您需要使用整形:
...
a[:, :, :, np.newaxis]
a = np.zeros((400, 28, 28)) a.reshape(*a.shape, 1).shape > (400, 28, 28, 1)
*a.shape解包shape元组,并将每个元素作为reshape函数的参数传递(就像编写a.reshape(400, 28, 28, 1)一样)
*a.shape
a.reshape(400, 28, 28, 1)
xvw2m8pv2#
你必须这样做:
images = np.expand_dims(images, axis=-1)
z9ju0rcb3#
也可以使用np.newaxis:
np.newaxis
images = images[:, :, :, np.newaxis]
或
images = images[..., np.newaxis]
3条答案
按热度按时间tcbh2hod1#
您可以使用
expand_dims
在任何数组轴中添加大小为1的维度。或者,如果你需要一个更短的方式(例如在表达式中使用)
其中
...
表示数组的每个维度(就像写a[:, :, :, np.newaxis]
一样)。如果您需要使用整形:
*a.shape
解包shape元组,并将每个元素作为reshape函数的参数传递(就像编写a.reshape(400, 28, 28, 1)
一样)xvw2m8pv2#
你必须这样做:
z9ju0rcb3#
也可以使用
np.newaxis
:或