将3个排名的图像扩展为4个排名的图像(对于keras ImageDataGenerator().fit)

时间:2017-08-02 09:32:29

标签: numpy tensorflow keras

我有一个形状(10,256,256)的图像,我必须在开头添加一个维度,表示图像的通道数(在我的情况下为3),我应该怎么做?

ValueError:.fit()的输入应该是等级4.得到形状的数组:(10,256,256)

我也试过这个:

X_train = numpy.array(X_train)
X_train = numpy.reshape(X_train, (1, len(X_train), targ_size[0], targ_size[1]))

datagen_train.fit(X_train)

1 个答案:

答案 0 :(得分:2)

有几种方法可以增加数组的维度:

X_new1 = X_train[np.newaxis]
X_new2 = X_train[None]
X_new3 = X_train.reshape((1,)+X_train.shape)
X_new4 = np.expand_dims(X_train,0)

X_new1, X_new2, X_new3X_new4都是等效的

此外,X_new1X_new2甚至“更相同”,因为使用相同的想法。即np.newaxis相当于None

同样适用于方法3和4,方法4内部调用方法3