ValueError: cannot reshape array of size 82022400 into shape (96,96,3) Как рассчитать reshape() для 2225 изображений
Предобрабатываю изображения в форму двоичного файла чтобы потом закинуть в Keras GAN model. У меня есть 2225 изображений разных размеров и в формате png. при вызове image.size() из директории данных вывод (96, 96), дальше я записываю его в тренировчный список training_data чтобы Как мне рассчитать правильный reshape() и константы для преобразования изображений? Что надо измениить в коде?
GENERATE_RES = 3 # Generation resolution factor
# (1=32, 2=64, 3=96, 4=128, etc.)
GENERATE_SQUARE = 32 * GENERATE_RES # rows/cols (should be square)
IMAGE_CHANNELS = 3
# Preview image
PREVIEW_ROWS = 4
PREVIEW_COLS = 7
PREVIEW_MARGIN = 16
# Size vector to generate images from
SEED_SIZE = 100
# Configuration
DATA_PATH = '/folder/patterns/dragons dataset'
EPOCHS = 50
BATCH_SIZE = 32
BUFFER_SIZE = 2250
print(f"Will generate {GENERATE_SQUARE}px square images.")
training_binary_path = os.path.join(DATA_PATH,
f'training_data_{GENERATE_SQUARE}_{GENERATE_SQUARE}.npy')
print(f"Looking for file: {training_binary_path}")
if not os.path.isfile(training_binary_path):
start = time.time()
print("Loading training images...")
training_data = []
faces_path = os.path.join(DATA_PATH)
for filename in tqdm(os.listdir(faces_path)):
path = os.path.join(faces_path,filename)
image = Image.open(path).resize((GENERATE_SQUARE,
GENERATE_SQUARE),Image.ANTIALIAS)
# при вызове image.size() вывод (96, 96)
training_data.append(np.asarray(image))
training_data = np.reshape(training_data,(-1,GENERATE_SQUARE,
GENERATE_SQUARE,IMAGE_CHANNELS))
training_data = training_data.astype(np.float32)
training_data = training_data / 127.5 - 1.
print("Saving training image binary...")
np.save(training_binary_path,training_data)
elapsed = time.time()-start
print (f'Image preprocess time: {hms_string(elapsed)}')
else:
print("Loading previous training pickle...")
training_data = np.load(training_binary_path)
19 training_data = np.reshape(training_data,(-1,GENERATE_SQUARE,
---> 20 GENERATE_SQUARE,IMAGE_CHANNELS))
21 training_data = training_data.astype(np.float32)
22 training_data = training_data / 127.5 - 1.
<__array_function__ internals> in reshape(*args, **kwargs)
2 frames
/usr/local/lib/python3.7/dist-packages/numpy/core/fromnumeric.py in _wrapit(obj, method, *args, **kwds)
42 except AttributeError:
43 wrap = None
---> 44 result = getattr(asarray(obj), method)(*args, **kwds)
45 if wrap:
46 if not isinstance(result, mu.ndarray):
ValueError: cannot reshape array of size 82022400 into shape (96,96,3)