Arrays “.fit()”的输入应具有排名4。已获取具有形状的数组:(777,1,256,256,3)
这就是我得到的错误Arrays “.fit()”的输入应具有排名4。已获取具有形状的数组:(777,1,256,256,3),arrays,data-augmentation,Arrays,Data Augmentation,这就是我得到的错误 seed=24 from keras.preprocessing.image import ImageDataGenerator img_data_gen_args = dict(rotation_range=90, width_shift_range=0.3, height_shift_range=0.3, shear_range=0.5,
seed=24
from keras.preprocessing.image import ImageDataGenerator
img_data_gen_args = dict(rotation_range=90,
width_shift_range=0.3,
height_shift_range=0.3,
shear_range=0.5,
zoom_range=0.3,
horizontal_flip=True,
vertical_flip=True,
fill_mode='reflect')
mask_data_gen_args = dict(rotation_range=90,
width_shift_range=0.3,
height_shift_range=0.3,
shear_range=0.5,
zoom_range=0.3,
horizontal_flip=True,
vertical_flip=True,
fill_mode='reflect')
#preprocessing_function = lambda x: np.where(x>0, 1, 0).astype(x.dtype)) #Binarize
the output again.
image_data_generator = ImageDataGenerator(**img_data_gen_args)
image_data_generator.fit( X_train, augment=True, seed=seed)
image_generator = image_data_generator.flow(X_train, seed=seed)
valid_img_generator = image_data_generator.flow(X_test, seed=seed)
mask_data_generator = ImageDataGenerator(**mask_data_gen_args)
mask_data_generator.fit(y_train, augment=True, seed=seed)
mask_generator = mask_data_generator.flow(y_train, seed=seed)
valid_mask_generator = mask_data_generator.flow(y_test, seed=seed)
def my_image_mask_generator(image_generator, mask_generator):
train_generator = zip(image_generator, mask_generator)
for (img, mask) in train_generator:
yield (img, mask)
my_generator = my_image_mask_generator(image_generator, mask_generator)
validation_datagen = my_image_mask_generator(valid_img_generator, valid_mask_generator)
x = image_generator.next()
y = mask_generator.next()
for i in range(0,1):
image = x[i]
mask = y[i]
plt.subplot(1,2,1)
plt.imshow(image[:,:,0], cmap='gray')
plt.subplot(1,2,2)
plt.imshow(mask[:,:,0])
plt.show()
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
25
26图像数据发生器=图像数据发生器(**img数据发生器参数)
--->27图像数据生成器.fit(X\u序列,增强=真,种子=种子)
28
29图像生成器=图像数据生成器.流(X列,种子=种子)
/usr/local/lib/python3.7/dist-packages/keras_preprocessing/image/image_data_generator.py in
配合(自我、x、增强、轮次、种子)
934如果x.ndim!=4:
935 raise VALUE ERROR(“.fit()`的输入应为4级。”
-->936'获得形状为“+str(x.shape)”的数组
937如果x.shape[self.channel_轴]不在{1,3,4}中:
938.warning(
ValueError:“.fit()”的输入应具有秩4。获取了具有形状的数组:(777,1,256,256,3)
大家好。我在数组列组方面遇到了一些问题,似乎很难理解如何解决它(仍然是初学者!)。我看到了一些与同一问题相关的问题,但仍然不清楚如何以及在何处进行重塑。有任何可能的帮助吗?提前谢谢
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-97-6669d209f27d> in <module>()
25
26 image_data_generator = ImageDataGenerator(**img_data_gen_args)
---> 27 image_data_generator.fit( X_train, augment=True, seed=seed)
28
29 image_generator = image_data_generator.flow(X_train, seed=seed)
/usr/local/lib/python3.7/dist-packages/keras_preprocessing/image/image_data_generator.py in
fit(self, x, augment, rounds, seed)
934 if x.ndim != 4:
935 raise ValueError('Input to `.fit()` should have rank 4. '
--> 936 'Got array with shape: ' + str(x.shape))
937 if x.shape[self.channel_axis] not in {1, 3, 4}:
938 warnings.warn(
ValueError: Input to `.fit()` should have rank 4. Got array with shape: (777, 1, 256, 256, 3)