#python #numpy
#python #numpy
Вопрос:
Я считываю изображения из нескольких папок, затем заполняю каждую папку
изображения с предопределенным количеством нулей, чтобы все папки были
иметь одинаковое количество изображений. каждая форма изображения равна (127,227,3) ,
for file in allfiles:
files.append(file) if ('.jpg' in file) else None
samples = np.empty((127, 227,3))
for file in files:
img = cv2.imread(os.path.join(pth_upd,file))
img=img.astype(np.float32)
samples = np.append(samples, img, axis=0)
print(samples.shape)
pad_size=half_len-len(samples)
samples = np.pad(samples,(( pad_size,0),(0,0),(0,0)),mode='constant', constant_values=0)
f_name=format(folder)
full_path ='C:/Users/sarmad/Documents/dev_test_of' f_name
Я получаю эту ошибку :
ValueError Traceback (most recent call last)
<ipython-input-14-da54323f81ce> in <module>
58 pad_size=half_len-len(samples)
59
samples = np.pad(samples,(( pad_size,0),(0,0),
(0,0)),mode='constant', constant_values=0)
61
62 f_name=format(folder)
ValueError: ((-44812, 0), (0, 0), (0, 0)) cannot contain negative values.
Комментарии:
1. не могли бы вы рассказать нам, что такое half_len? потому что len (samples), вероятно, является очень большим числом. какова ваша цель при добавлении к образцу? поскольку форма меняется, я должен спросить.
2. half_len — это размер самой большой папки, например 500-(current_number_of_images_in_folder), мне нужно создать pkls, чтобы использовать их в качестве пакетов для keras
3. Ваш pad_size становится отрицательным, поэтому проверьте, не становится ли len (samples) слишком большим.
4. @N.zay не могли бы вы попробовать ‘pad_size=(half_len 1) * 127 — len (образцы)’. потому что, как я понимаю, ‘half_len’ — это количество файлов. но ваше первое измерение образца увеличивается на 127 с каждым добавлением, что дает длину массива. и ‘ 1’ для самого большого каталога. поскольку длина первых нулей в образцах равна 127. но вы могли делать что-то неправильно. какой формы «образцов» вы пытаетесь достичь.