Josh
Josh

Reputation: 95

ValueError: cannot reshape array of size 36070300 into shape (704,227,227)

I am getting this error, but do not know why.

Traceback (most recent call last):
  File "C:\Users\JoshG\PycharmProjects\LeNet\LeNet.py", line 134, in <module>
    train_generator.fit(xtrain.reshape(704, 227, 227))
ValueError: cannot reshape array of size 36070300 into shape (704,227,227)

Below is the line that is causing the error message.

#Import the packages
from keras.preprocessing.image import ImageDataGenerator

# Image Data Augmentation
train_generator = ImageDataGenerator(rotation_range=2, horizontal_flip=True, zoom_range=.1)
val_generator = ImageDataGenerator(rotation_range=2, horizontal_flip=True, zoom_range=.1)
test_generator = ImageDataGenerator(rotation_range=2, horizontal_flip=True, zoom_range=.1)

# Fitting the augmentation defined above to the data
train_generator.fit(xtrain.reshape(704, 227, 227))
val_generator.fit(x_val.reshape(704, 227, 227))
test_generator.fit(xtest.reshape(704, 227, 227))

UPDATE: I modified the code to the following:

# Fitting the augmentation defined above to the data
train_generator.fit(xtrain.reshape(-1, 704, 227, 227))
val_generator.fit(x_val.reshape(-1, 704, 227, 227))
test_generator.fit(xtest.reshape(-1, 704, 227, 227))

and now getting this error:

Traceback (most recent call last):
  File "C:\Users\JoshG\PycharmProjects\LeNet\LeNet.py", line 136, in <module>
    val_generator.fit(x_val.reshape(-1, 704, 227, 227))
ValueError: cannot reshape array of size 4946784 into shape (704,227,227)

So I then removed the 704 and left the -1 as shown below

# Fitting the augmentation defined above to the data
train_generator.fit(xtrain.reshape(-1, 227, 227))
val_generator.fit(x_val.reshape(-1, 227, 227))
test_generator.fit(xtest.reshape(-1, 227, 227))

but I then get this error message:

Traceback (most recent call last):
  File "C:\Users\JoshG\PycharmProjects\LeNet\LeNet.py", line 135, in <module>
    train_generator.fit(xtrain.reshape(-1, 227, 227))
  File "C:\Users\JoshG\AppData\Local\Programs\Python\Python39\lib\site-packages\keras_preprocessing\image\image_data_generator.py", line 935, in fit
    raise ValueError('Input to `.fit()` should have rank 4. '
ValueError: Input to `.fit()` should have rank 4. Got array with shape: (704, 227, 227)

Upvotes: 0

Views: 158

Answers (1)

midin
midin

Reputation: 103

Dividing 36070300 by 227 * 227 gives 700 - not 704. You can also use -1 instead of 704 to indicate that the value shall be computed automatically.

Upvotes: 1

Related Questions