Reputation: 95
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
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