【发布时间】:2021-11-23 21:39:22
【问题描述】:
多处理的新手,我的数据框中有图像名称,存储在 s3 中,我正在尝试读取这些图像并将它们转换为具有多处理的数组。但是出现错误。数据框如下表所示。
| image1 | image2 |
|---|---|
| img1.jpg | img1.jpg |
| img3.jpg | img4.jpg |
我希望将此数据框转换为如下所示的图像数组。
| image1 | image2 | array_1 | array_2 |
|---|---|---|---|
| img1.jpg | img2.jpg | array of img1 | array of img2 |
| img3.jpg | img4.jpg | array of img3 | array of img4 |
我正在尝试使用多处理来执行此操作,但运行时错误为 -
RuntimeError: 这个类不是 fork-safe下面是代码。
def img_array(image):
'''read single image from s3 and convert to array.'''
with fs.open(f's3://{bucket_name}/{folder_to_images}{image}' as f:
open_image=Image.open(f)
open_image.resize((224,224))
img_arr=image.img_to_array(open_image)
return img_arr
def add_to_df(n):
'''returns array for each of both images passes by Pool.'''
array_1 = img_array(n[0])
array_2 = img_array(n[0])
return array_1, array_2
P=Pool()
result=P.map(add_to_df,df.values)
P.close()
P.join()
请帮助我了解如何在多处理中从 s3 读取图像。
【问题讨论】:
标签: amazon-web-services amazon-s3 multiprocessing python-multiprocessing