当前位置: 首页 > news >正文

【jupyter 使用多进程方案】

可选择的方案:

  1. pathos.multiprocessing
  2. joblib.Parallel

来写的 Jupyter Notebook 兼容版本 示例。


✅ 方法一:使用 pathos.multiprocessing(Jupyter友好)

from pathos.multiprocessing import ProcessingPool as Pool
from tqdm import tqdmdef process_image(img_path, output_path):# 你的图像处理逻辑,比如保存图像到 output_path# 示例代码如下(请根据你实际处理内容修改):from PIL import Imageimg = Image.open(img_path)img.save(output_path)return output_path# 构造参数列表(每个是一个元组)
args = [(img_path, output_path / img_path.name) for img_path in img_paths]# 初始化 Pool 并并行处理
pool = Pool()  # 默认使用 CPU 核心数# tqdm 不支持 map 直接用,写成 list
results = list(tqdm(pool.uimap(lambda args: process_image(*args), args), total=len(args)))

🔑 特点:

  • 支持在 Jupyter 中直接运行;
  • 不需要 if __name__ == "__main__"
  • 支持传多个参数(通过 *args 拆包);
  • 使用 uimap() 可以有 tqdm 进度条(imap 带顺序,map 会等全部完成)。

✅ 方法二:使用 joblib.Parallel(适合CPU密集,稳定)

from joblib import Parallel, delayed
from tqdm import tqdmdef process_image(img_path, output_path):from PIL import Imageimg = Image.open(img_path)img.save(output_path)return output_path# tqdm 进度条用在参数上
results = Parallel(n_jobs=-1)(delayed(process_image)(img_path, output_path / img_path.name)for img_path in tqdm(img_paths)
)

🔑 特点:

  • n_jobs=-1 表示使用所有可用核心;
  • 同样支持多个参数;
  • 在 Jupyter 运行稳定,依赖 loky 后端;
  • 避免了 pickle 报错。

📦 安装依赖

如果你没有安装 pathosjoblib

pip install pathos joblib

✅ 总结对比

特性pathosjoblib
Jupyter兼容
多参数传递✅(tuple 拆包)✅(delayed(f)(...)
支持 tqdm✅(配合 uimap✅(在 for 循环外)
稳定性/文档支持中(社区较活跃)高(广泛用于 sklearn 等)
推荐使用场景函数自由写、调试方便大批量 CPU 密集任务
http://www.lryc.cn/news/598031.html

相关文章:

  • 数据库底层索引讲解-排序和数据结构
  • 根据字符串数组的顺序重新排序 List顺序
  • 使用全局变量访问 Qt UI 组件的方法文档
  • WebRTC指纹——深度分析(中篇)
  • 5种最佳方法将iPhone语音备忘录传输到Mac
  • pycharm配conda环境
  • 阿里视频直播解决方案VS(MediaMTX + WebRTC) 流媒体解决方案
  • 基于python django的农业可视化系统,以奶牛牧场为例
  • WebRTC指纹——技术背景(上篇)
  • Apache POI 实战应用:企业级文档处理解决方案
  • 解决VSCode中“#include错误,请更新includePath“问题
  • es 和 lucene 的区别
  • 【Practical Business English Oral Scene Interpretation】入职面试No.5~7
  • 基于三维点云的智能焊缝识别系统设计与实现
  • 噪声环境下的数据驱动预测控制:提升抗测量噪声干扰能力
  • C++的虚基类?
  • Visual Studio 2010-.Net Framework 4.0项目-NPOI安装
  • 【智能协同云图库】智能协同云图库第六弹:空间模块开发
  • 2025年“创新杯”(原钉钉杯) B题 详细建模思路
  • 钉钉DingTalk完整版下载离线安装包2025
  • Webpack/Vite 终极指南:前端开发的“涡轮增压引擎“
  • 2025创新杯(钉钉杯)数学建模 AB赛题已出
  • 设置后轻松将 iPhone 转移到 iPhone
  • vue3 + vite || Vue3 + Webpack创建项目
  • 脑电分析——EEGLAB的使用与代码的解读
  • 系统配置修改安全指南
  • 硬件基础 -- PLL锁相环
  • c# SqlFunc.IF 使用方法
  • BacNet 是什么?跟 LoRaWAN 的关系是什么?
  • 结构化布线系统详解