python - 执行Python多处理时的图像路径问题
问题描述
没有多处理就没有问题。单独使用多处理会导致路径问题。再怎么搜索也找不到内容的答案,所以求助
import numpy as np
import tensorflow as tf
import pandas as pd
from keras.preprocessing.image import array_to_img, img_to_array, load_img
import time
from multiprocessing import Pool
def b(path):
for f in path:
print (f)
new_img = load_img(f,target_size=(256,256))
arr_img = img_to_array(new_img)
return arr_img
def main():
start = int(time.time())
num_cores = 4
pool = Pool(num_cores)
pool.map(b, 'C:\\Users\\003.png')
print("***run time(sec) :", int(time.time()) - start)
if __name__ == "__main__":
main()
错误信息
load_img
with open(path, 'rb') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'C'
即使将其作为变量如下所示,错误消息也是相同的。
def main():
start = int(time.time())
num_cores = 4
pool = Pool(num_cores)
bb = 'C:\\Users\\003.png'
pool.map(b, bb)
print("***run time(sec) :", int(time.time()) - start)
解决方案
这段代码有问题。
pool.map(b, 'C:\\Users\\003.png')
您正在使用地图,第一个参数是一个函数(这对您来说可以),第二个需要是可迭代的,所以它需要像(例如一个列表)['C:\\Users\\003.png']
因为你给它的'C:\\Users\\003.png'
map 试图像 C 一样迭代它,然后 :\ 等等。这是抛出错误。所以请将您的代码更改为(即列表)
pool.map(b, ['C:\\Users\\003.png'])
推荐阅读
- python - Python:如何在 pandas 中进行条件运算?
- python - 在 django 项目中没有加载 css 中的更改?
- python - 在opencv python中获取面具的轮廓
- c++ - Tensorflow C++ - 加载两个图时避免名称重叠
- postman - 邮递员并在 x-www-form-urlencoded 请求的正文中设置变量
- java - 如何使用java获取客户端的mac地址?
- javascript - JavaScript scrollIntoView 函数不起作用 - 页面不会滚动到元素视图中
- python - 封装决定初始化哪个子类
- javascript - 在 VuetifyJS 组件中设置下拉菜单按钮宽度以阻止
- php - laravel 中间件不使用工作