我有一个 4D np.array 大小 (10000,32,32,3),表示一组 10000 个 RGB 图像。
我该如何使用skimage.transform.resize
或其他函数来有效地调整所有图像的大小,以便将 (32,32) 插值到 (224,224)?我更喜欢使用 skimage 来完成此操作,但我对任何不使用的解决方案持开放态度tf.image.resize_images
.
我当前的解决方案是使用tf.image.resize_images
,但它稍后会在我的管道中导致 GPU 内存问题(在 jupyter 笔记本中完成后不会释放内存),所以我想更换它。
Example:
import tensorflow as tf
X = tf.image.resize_images(X,[224, 224])
with tf.Session() as sess:
X = X.eval()
我不太可能接受我自己的答案,但似乎一个简单的 for 循环实际上相当快(说大约 300% 的 cpu 利用率top
).
from skimage.transform import resize
imgs_in = np.random.rand(100, 32, 32, 3)
imgs_out = np.zeros((100,224,224,3))
for n,i in enumerate(imgs_in):
imgs_out[n,:,:,:] = resize(imgs_in[n,:,:,:], imgs_out.shape[1:], anti_aliasing=True)
print(imgs_out.shape)
似乎比快 7-8 倍ndi.zoom
在我的机器上。尝试将其进一步并行化multiprocessing
我想会更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)