函数内部多处理 scipy 优化的奇怪行为

2023-12-21

这是一个运行良好的简单代码。即使函数 minimize 包装了 scipy.optimize.minimize 它也不会抱怨酸洗

import numpy as np
from scipy import optimize
from multiprocessing import Pool

def square(x):
    return np.sum(x**2+ 2*x)

def minimize(args):
    f,x = args
    res = optimize.minimize(f, x, method = 'L-BFGS-B')
    return res.x

x = np.random.rand(8,10)

args = [(square,x[i]) for i in range(8)]
p = Pool(8)
p.map(minimize,args)

但是,如果尝试以下操作,则会失败并出现酸洗错误

PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed

def run():
    def square(x):
        return np.sum(x**2+ 2*x)

    def minimize(args):
        f,x = args
        res = optimize.minimize(f, x, method = 'L-BFGS-B')
        return res.x

    x = np.random.rand(8,10)

    args = [(square,x[i]) for i in range(8)]
    p = Pool(8)
    p.map(minimize,args)

run()

我想制作一个模块来与许多初始猜测并行使用 scipy minimise。但是,如示例所示,当我将其设为模块时,它失败了。


问题是Python无法pickle嵌套函数,在你的第二个例子中,你试图传递嵌套函数minimize and square函数到您的子进程,这需要酸洗。

如果没有理由必须嵌套这两个函数,将它们移动到模块的顶层将解决问题。您还可以看到这个问题 https://stackoverflow.com/questions/12019961/python-pickling-nested-functions用于腌制嵌套函数的技术。

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

函数内部多处理 scipy 优化的奇怪行为 的相关文章

  • 如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

    There are a great many existing Q A on Stack Overflow on this general theme but they are all either poor quality typical
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • 如何在 Aurelia 中设置复选框绑定

    我有一个复选框列表 当用户选中其中一个复选框时 会在 js 文件中调用一个函数 然后调用一个方法 dataservice js 来调用 webapi 控制器 这一切都工作正常并返回正确的数据 当该过程完成时 会发生的情况是触发序列的复选框未
  • 存储指向 std::string 数据的指针是否安全?

    我的问题围绕复制构造和重新分配的机制 我有一堂课 收集字符串 将字符串添加到集合后 该字符串将被复制并存储在向量中 但因为我还需要访问所有字符串的集合const char const 我还通过以下方式存储指向每个字符串数据的指针 c str
  • sbt - 仅在发布期间排除某些依赖项

    我正在构建一个实用程序库 可以与 Apache Spark 1 0 1 1 1 2 版本之一一起使用 由于它们都是二进制向后兼容的 我想让用户决定使用哪个 Spark 版本 通过手动添加spark core将首选版本作为我的库的依赖项 并且
  • MATLAB 是否执行公共子表达式消除?

    MATLAB 的优化器是否对 MATLAB 代码执行公共子表达式消除 例如 if max val gt minVal max val lt maxVal maxVal max val end 多久一次max val 在那里评价 将中间值存储
  • AppFabric 安装错误代码 1603

    我意识到这个问题已经被问到 但迄今为止发布的所有解决方案尚未取得巨大成功 这是 3 个日志中的 2 个 我很可能在这里遗漏了一些东西 但非常感谢您的帮助 应用服务器设置 2013 05 20 18 14 31 Information Set
  • 如何使用计时器运行 php 脚本?

    我有 foreach 函数来打印学生姓名 names array Alex Brad Tom foreach names as name echo name br sleep 3 我如何打印每个名字 每 3 秒一次 后 echo name
  • 如何使用 bash 脚本安装包含变量的 bash 函数? [复制]

    这个问题在这里已经有答案了 我正在尝试创建一个 bash 脚本 该脚本允许我在多台计算机上安装相同的 bash 函数 此特定函数在备份目录中创建带有时间戳的文件副本 filebackup cp filebackup date Y m d H
  • ASP.NET MVC3 WebGrid 帮助程序和模型元数据

    我正在尝试使用 ASP NET MVC 3 中的 WebGrid html 帮助程序根据 ModelMetadata 中找到的信息自动生成列 例如 接受对象列表的视图中的代码将是 var grid new WebGrid Model gri
  • 两个列表的交集,在第一个列表中保留重复项

    我有两个平面列表 其中之一包含重复值 例如 array1 1 4 4 7 10 10 10 15 16 17 18 20 array2 4 6 7 8 9 10 我需要在 array1 中查找也在 array2 中的值 将重复项保留在 ar
  • 在 ActionScript 3 中将一系列函数“链接”在一起

    我正在调用一个函数 并在该函数返回一些数据时添加一个侦听器 当数据返回时我需要调用另一个函数等等 是否有一种简单的方法将这些函数 链接 在一起 以便第一个函数触发 等待侦听器 然后触发第二个函数 为其创建侦听器 依此类推 直到最后一个函数调
  • SSRS 传递报告参数

    我度过了艰难的一天 试图解决这个问题的根本问题 我有一个用户输入信息的表单 该信息通过 URL 传递到 SSRS 我收到错误 An error has occurred during report processing rsProcessi
  • UITextField 中的 UITextPosition

    有什么方法可以让我通过文本字段的 UITextRange 对象获取 UITextField 当前的插入符位置吗 UITextField 返回的 UITextRange 有什么用吗 UITextPosition 的公共接口没有任何可见成员 昨
  • 基于 Restful 的视频流

    使用 spring boot 我想制作基于 RESTful 的视频播放器 我的文件浏览器中有 mp4 扩展名的视频 如何通过创建休息端点在前端提供这些视频 我已经尝试过这个方法 http shazsterblog blogspot com
  • 如何在 Three.js 中更改脸部颜色

    我正在尝试更改网格单个面上的颜色 这是在 WebGL 上下文中 我可以改变整个网格的颜色 但不能改变单个面的颜色 相关代码如下 Updated Per Lee var camera this camera var projector new
  • 如何编写语法类似Python缩进的语言?

    我正在使用类似于 Python 的内置语言编写一个工具 我想让缩进在语法中有意义 以便行开头的制表符和空格代表命令的嵌套 做这个的最好方式是什么 我之前写过递归下降和有限自动机解析器 目前的CPython http en wikipedia
  • 仅对最近修改的文件运行 grunt-contrib-jshint

    我们正在一个非常大的网站上重构代码 我想对任何发生更改的文件强制执行 linting 但忽略其余文件 因为其中许多文件最终会被删除 所以整理它们是浪费时间 我想要一个 grunt 任务来检查文件的修改日期是否比其创建 从存储库获取 日期更新
  • Vue.js 在 setTimeout 后滚动到新页面路由的顶部

    当立即滚动到新路线的顶部时 我的页面转换效果不佳 我想等待 100 毫秒 然后它会自动滚动到顶部 以下代码根本不会滚动 有没有办法做到这一点 export default new Router mode history routes pat
  • elasticsearch.js 客户端连接被拒绝:Access-Control-Allow-Origin 无法识别?

    我一直在尝试使用elasticsearch jquery min js ping 本地运行的elasticsearch 每次都会收到 无活动连接 错误 ETA 在 Chrome 中 我看到看起来相当低级别的 连接被拒绝 我正在 MacOS
  • 使用切片值的 Golang 字符串格式

    在这里 我尝试从包含字符串的切片为我的 API 创建查询字符串 ie where node name node1 node name node 2 import fmt strings func main nodes string node
  • 函数内部多处理 scipy 优化的奇怪行为

    这是一个运行良好的简单代码 即使函数 minimize 包装了 scipy optimize minimize 它也不会抱怨酸洗 import numpy as np from scipy import optimize from mult