skimage.transform.resize работает медленнее, чем scipy.misc.imresize

#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. Большое вам спасибо, это сработало, я вставил это в ячейку перед ячейкой кода.