#python #scipy #image-resizing #scikit-image
#python #scipy #изменение размера изображения #scikit-изображение
Вопрос:
Я тренирую нейронную сеть, во время обучения я столкнулся с ошибками в разделе подготовки данных. где эта строка:
img = np.double(scipy.misc.imresize(img, [height, width, channels], interp='bilinear', mode = 'RGB'))
и эта строка:
img2 = np.double(scipy.misc.imresize(img2, [height, width], interp='bilinear'))
показывал ошибки, так как scipy.misc.imresize не рекомендуется в более новых версиях scipy. Что я сделал, так это использовал skimage.transform.resize вместо scipy.misc.imresize, это то, что рекомендуется, поскольку:
img = np.double(resize(img, (height, width, channels)))
и
img2 = np.double(resize(img2, (height, width)))
Это сработало.
Но проблема в том, что процесс чтения данных стал очень медленным по сравнению с scipy.misc.imresize. Я уже тестировал это раньше на старой версии scipy.misc.imresize.
Любая помощь в этом отношении была бы очень признательна. Спасибо!
P.S. Я обучаю модель в Google Colab.
Комментарии:
1. Насколько это медленнее? Может быть, он выполняет интерполяцию более высокого порядка (возможно, кубическую)?
2. @Trilarion Процесс чтения занимает около двух часов. С scipy это занимает около десяти минут.
Ответ №1:
Вы можете просто скопировать и вставить исходный код imresize:
https://github.com/scipy/scipy/blob/v1.1.0/scipy/misc/pilutil.py#L513
Комментарии:
1. Не понял, сэр @ ev-br. Должен ли я скопировать / вставить код этого файла в ячейку моего jupyter notebook перед выполнением ячейки упомянутого кода?
2. Большое вам спасибо, это сработало, я вставил это в ячейку перед ячейкой кода.