使用多处理时 cv2.Boost 的 Pickle 异常

2023-12-03

我正在从事名为“Faciel Actions UnitsDetection”的项目 我正在使用 python2.7 和 opencv 2.4

错误:

pickle.PicklingError: Can't pickle <type 'cv2.Boost'>: it's not the same object as cv2.Boost

部分回溯,转录自截图:

Loading classifier for action unit 27
Traceback (most recent call last):
  File "C:\Python27\audetect-master\audetect-interactive.py", line 59, in <module>
    main()
  File "C:\Python27\audetect-master\audetect-interactive.py", line 18, in main
    active_aus = detector.detect()
  File "C:\Python27\audetect-master\detect.py", line 67, in detect
    initial_points = self.ffdetector.locate_features(first)
  File "C:\Python27\audetect-master\detect.py", line 183, in locate_features
    thread.start()
  File "C:\Python27\lib\multiprocessing\process.py", line 130, in start
    self._popen = Popen(self)
  File "C:\Python27\lib\multiprocessing\forking.py", line 227, in __init__
    dump(process_obj, to_child, HIGHEST_PROTOCOL)
  File "C:\Python27\lib\multiprocessing\forking.py", line 199, in dump
    ForkingPickler(file, protocol).dump(obj)
  File "C:\Python27\lib\pickle.py", line 224, in dump
    self.save(obj)
  File "C:\Python27\lib\pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "C:\Python27\lib\pickle.py", line 425, in save_reduce
    save(state)
  File "C:\Python27\lib\pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "C:\Python27\lib\pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "C:\Python27\lib\pickle.py", line 687, in _batch_setitems
    save(v)
  File "C:\Python27\lib\pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "C:\Python27\lib\multiprocessing\forking.py", line 67, in dispatcher
    self.save_reduce(obj=obj, *rv)
  File "C:\Python27\lib\pickle.py", line 401, in save_reduce
    save(args)
  File "C:\Python27\lib\pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "C:\Python27\lib\pickle.py", line 554, in save_tuple
    save(element)

泡菜是由multiprocessing模块在不同部分之间进行通信,并且在编程指南它解释了您必须确保在进程之间传递的所有数据都必须与酸洗兼容:

酸洗性:确保代理方法的参数是可挑选的。

您正在使用不可 picklable 的数据。

具体来说,问题在于cv2.Boostclass 并没有完全说明如何创建该类的更多副本。pickle stores 参考类和函数,而不是它们的定义,因为这样更有效。这意味着实例只需要存储该实例的数据,而不是所有的类层次结构和方法定义。

为此,pickle接受定义类或函数的模块、对象的名称,以及对类或函数的引用。那么它双重检查它可以使用该名称再次加载相同的类或函数。

健全性检查失败了cv2.Boost班级。您有一个名为的类的实例Boost并声称来自cv2模块,但是当pickle然后转到cv2模块并查找Boost它找到了该模块的属性不同的对象。这意味着您的数据无法被取消。

有一些方法可以纠正这个问题;你需要教pickle模块使用不同的函数再次加载相同的数据,使用copyreg.pickle()功能;如果存在这样的注册cv2.Boost然后上课pickle不会进行上述检查:

import copyreg
import cv2

def _pickle_boost(boost):
    return cv2.Boost, (
        boost.trainData,
        boost.tflag,
        boost.responses, 
        boost.varIdx,
        boost.sampleIdx,
        boost.varType,
        boost.missingDataMask,
        boost.paramsd,
    )

copyreg.pickle(cv2.Boost().__class__, _pickle_boost)

WARNING:我实际上没有测试上面的方法是否有效,因为我没有 2.4.x 版本cv2本地安装;我只是提到了cv2.Boost()文档猜测这样一个类将具有哪些属性。您可能需要调整它。这个想法是为了cv2.Boost().__class__类型,即_pickle_boost()函数被调用,返回一个可调用的(cv2.Boost) 创建一个新实例,以及要传递给该可调用对象的参数。

如果上述任何一个值本身更cv2表现出相同问题的类型,那么您需要注册更多函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用多处理时 cv2.Boost 的 Pickle 异常 的相关文章

  • 使用 python 进行串行数据记录

    Intro 我需要编写一个小程序来实时读取串行数据并将其写入文本文件 我在读取数据方面取得了一些进展 但尚未成功地将这些信息存储在新文件中 这是我的代码 from future import print function import se
  • 我怎样才能更多地了解Python的内部原理? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我使用Python编程已经有半年多了 我对Python内部更感兴趣 而不是使用Python开发应用程序
  • 如何在序列化器创建方法中获取 URL Id?

    我有以下网址 url r member P
  • 如何正确地将 MIDI 刻度转换为毫秒?

    我正在尝试将 MIDI 刻度 增量时间转换为毫秒 并且已经找到了一些有用的资源 MIDI Delta 时间刻度到秒 http www lastrayofhope co uk 2009 12 23 midi delta time ticks
  • 在 Tensorflow tf.nn.nce_loss 中出现 TypeError:'Mul' Op 的输入 'y' 的类型为 float32,与参数 'x' 的 int32 类型不匹配

    我正在研究 Tensor Flow 中的 Bag of Words 实现 并得到了 类型错误 Mul Op 的输入 y 的类型为 float32 与参数 x 的 int32 类型不匹配 在 tf nn nce loss 中 我尝试查看 tf
  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 填充两个函数之间的区域

    import matplotlib pyplot as plt import numpy as np def domain x np arange 0 10 0 001 f1 lambda x 2 x x 2 0 5 plt plot x
  • 如何计算numpy数组中元素的频率?

    我有一个 3 D numpy 数组 其中包含重复的元素 counterTraj shape 13530 1 1 例如 counterTraj 包含这样的元素 我只显示了几个元素 array 136 129 130 103 102 101 我
  • 更改 `base_compiledir` 以将编译后的文件保存在另一个目录中

    theano base compiledir指编译后的文件存放的目录 有没有办法可以永久设置theano base compiledir到不同的位置 也许通过修改一些内部 Theano 文件的内容 http deeplearning net
  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • TensorFlow的./configure在哪里以及如何启用GPU支持?

    在我的 Ubuntu 上安装 TensorFlow 时 我想将 GPU 与 CUDA 结合使用 但我却停在了这一步官方教程 http www tensorflow org get started os setup md 这到底是哪里 con
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • 在 pytube3 中获取 youtube 视频的标题?

    我正在尝试构建一个应用程序来使用 python 下载 YouTube 视频pytube3 但我无法检索视频的标题 这是我的代码 from pytube import YouTube yt YouTube link print yt titl
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 无法在 osx-arm64 上安装 Python 3.7

    我正在尝试使用 Conda 创建一个带有 Python 3 7 的新环境 例如 conda create n qnn python 3 7 我收到以下错误 Collecting package metadata current repoda
  • 使用 Firefox 绕过弹出窗口下载文件:Selenium Python

    我正在使用 selenium 和 python 来从中下载某些文件web page http www oceanenergyireland com testfacility corkharbour observations 我之前一直使用设
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 从 Twitter API 2.0 获取 user.fields 时出现问题

    我想从 Twitter API 2 0 端点加载推文 并尝试获取标准字段 作者 文本 和一些扩展字段 尤其是 用户 字段 端点和参数的定义工作没有错误 在生成的 json 中 我只找到标准字段 但没有找到所需的 user fields 用户

随机推荐

  • Django 模板不存在 admin/login.html

    我正在使用 django 1 4 并且出现了这个错误 模板不存在于 admin 管理 登录 html 我尝试重新安装 django 但没有成功 请帮助 您可以尝试将管理模板路径名添加到 django settings py 中的 TEMPL
  • gnuplot rowstacked 直方图:如何将总和放在条形上方

    这个问题与gnuplot 直方图 如何将值放在条形顶部 我有一个数据文件file dat x y1 y2 1 2 3 2 3 4 3 4 5 和 gnuplot set style data histogram set style hist
  • 如何在 VB.NET 中创建通用属性?

    我想做这样的事情 Private myCollection As IList Of T Public Property MyProperty Of T as IList Of T Get Return Me myCollection End
  • CryptGenRandom() 是线程安全的吗?

    CryptGenRandom 对于单个全局程序范围的 HCRYPTPROV 实例来说是线程安全的吗 MSDN 似乎缺乏这方面的任何信息 https msdn microsoft com en us library windows deskt
  • 复合 mdfind 搜索

    目标是查找某个州或国家 地区的所有图像 mdfind kind image 会找到所有图像 mdfind kMDItemCountry United States 将找到具有此属性的所有文件 mdfind kind image kMDIte
  • Doctrine 在水合过程中添加了额外的查询,导致“正常”一对一和自引用关系出现 n+1 问题

    News使用一对多自引用方法相互关联 一个消息是父级 可以有多个子级 更何况各有各News与 具有正常 非自引用 一对一关系Event and Gallery 当我运行简单的 DQL 时 SELECT n FROM App Entity N
  • 除非手动执行,否则 Elastic Beanstalk 上的“npm install”会失败

    我有一个带有 PHP 应用程序的 Elastic Beanstalk 环境 我只想跑npm install我的应用程序部署后 node and npm都通过部署配置安装在服务器上 我定义了一个容器命令 只需 cd 到正确的目录 然后运行np
  • 如何使用log4cxx保留单个文件并覆盖同一文件中的内容?

    在我的应用程序中 多个线程将数据记录在同一个文件中 如果文件大小超过限制 那么我必须删除文件中的特定记录并将所有内容向上移动 我可以在 Log4cxx 中执行此操作吗 如果可以 请回复您的想法 谢谢 该示例将解决您的问题 log4j roo
  • Erlang 有支持 AJAX 的模块吗? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想创建一个能够接收和发送 AJAX 消息的 Erlang 服务器 有没有提供此功能的模
  • Botmaker 解决 Qnamaker 后续问题

    对于我当前的项目 我尝试使用仅上下文的后续提示 My problem is now that some of the questions from the follow up prompts are the same 在 qna ui 中
  • 如何在处理函数的其余部分之前更新 WPF 中的 UI 元素?

    我想在用户单击按钮后立即禁用该按钮以阻止他们再次单击它 单击它时会执行许多检查 并且这些检查似乎是在 UI 更改发生之前完成的 我试图通过为按钮使用单独的线程来做到这一点 但它似乎仍然只在检查完成后更新 这是我正在使用的代码 private
  • 将子文档数组元素添加到mongoDB中的子文档数组元素

    这可能吗 我有一个集合 C 其中包含属性 A1 的数组 每个属性都有一个子属性数组 A2 如何将子文档添加到特定的 C A1 子文档 这是一个例子 db docs insert id 1 A1 A2 1 2 3 A2 4 5 6 如果您知道
  • 实体框架。删除表中的所有行

    如何使用实体框架快速删除表中的所有行 我目前正在使用 var rows from o in dataDb Table select o foreach var row in rows dataDb Table Remove row data
  • 使用 Java 8 将 ms 转换为字符串日期

    我有一个毫秒时间戳 并使用 SimpleDateFormater 对其进行格式化 如下所示 SimpleDateFormat sdfDate new SimpleDateFormat MM d yyyy h mm a return sdfD
  • 如何使用 .NET 从十六进制颜色代码获取颜色?

    如何从十六进制颜色代码中获取颜色 例如 FFDFD991 我正在读取文件并获得十六进制颜色代码 我需要创建相应的System Windows Media Color十六进制颜色代码的实例 框架中有内置方法可以做到这一点吗 我假设这是一个 A
  • MPI 和 C 结构

    我必须承认 当我看到使用 MPI 传输一个 C 结构体需要多少行代码时 我感到非常震惊 在什么情况下可以使用预定义的数据类型简单地传输结构MPI CHAR 考虑以下示例 struct particle double x double y l
  • PHP switch 语句变量范围

    在 PHP 中 switch 语句中的变量作用域是如何处理的 例如 以这个假设的例子为例 someVariable 0 switch something case 1 someVariable 1 break case 2 someVari
  • 如何在maven多模块项目中仅运行父pom.xml

    我有 Maven 多模块项目 在父级 我有一些java文件 在父 pom xml 中 在打包阶段我做了一些事情 通常 当我在父级别运行 mvn package 时 父 pom 的 package 阶段将运行 并且所有模块也将被打包 我正在寻
  • 将数据从 SAP 提取到 SQL Server

    我正在使用 SSIS 包将 SAP 数据库表中的数据提取到 SQL Server 表中 我正在使用 OLEDB 源 目标连接来实现此目的 现在的问题是 SAP 中的一个表有 500 万条记录 需要大约 2 小时才能将这些数据提取到我的 SQ
  • 使用多处理时 cv2.Boost 的 Pickle 异常

    我正在从事名为 Faciel Actions UnitsDetection 的项目 我正在使用 python2 7 和 opencv 2 4 错误 pickle PicklingError Can t pickle