如何处理Matlab parfor循环中的未分类变量?

2024-03-09

我有以下代码,我想使其并行。但不幸的是,当我使用 parfor 循环时,出现以下错误。这是代码:

    parfor l1 = 1:length(lambda1_list) % over l1

        for l2 = 1:length(lambda2_list)

            params.lambda1 = lambda1_list(l1);
            params.lambda2 = lambda2_list(l2);


            [totBeta,theta,omega,rho,nu] = Learn_weights(dictionary(train_set,:), y(train_set,:), params); 

end
end

这是错误:

Error: The variable params in a parfor cannot be classified.
See Parallel for Loops in MATLAB, "Overview".

这是如何params好像 参数 =

lambda1_list: [1 1.5000 2 2.5000 3 3.5000 4 4.5000 5 5.5000 6 6.5000 7 7.5000 8 8.5000 9 9.5000 10]
lambda2_list: [1 1.5000 2 2.5000 3 3.5000 4 4.5000 5 5.5000 6 6.5000 7 7.5000 8 8.5000 9 9.5000 10]
    features: [50x2 double]
        mcut: [1 1 1 1 1 1 1 1 1 1]
learnWeights: 0
   beta_init: [50x10 double]
     lambda1: 10
     lambda2: 10
     stopVal: 1.0000e-05

我想知道有人可以帮助我吗?我需要有params在程序中,因为它有数千行代码并且它在不同的地方使用。 我正在寻找克服这个问题的技巧。


问题是你是修改 params(相同的精确数据)在每次迭代中parfor环形。如果你有两项并行的工作,理论上他们都会试图改变same params显然会引起问题的结构。

您的选择是创建一个array of params在循环之前,然后使用数组中的每个元素。

%// Duplicate params once for each time through the parfor loop
params_array = repmat(params, size(lambda1_list));

parfor l1 = 1:length(lambda1_list)
    for l2 = 1:length(lambda2_list)
        params_array(l1).lambda1 = lambda1_list(l1);
        params_array(l1).lambda2 = lambda2_list(l2);

        [totBeta,theta,omega,rho,nu] = Learn_weights(dictionary(train_set,:), y(train_set,:), params_array(l1)); 
    end
end

另一个选项是创建一个副本params在修改它之前。

parfor l1 = 1:length(lambda1_list)

    %// Make a copy of the params that is local to this loop iteration
    this_param = params;

    for l2 = 1:length(lambda2_list)
        %// Modify this copy
        this_param.lambda1 = lambda1_list(l1);
        this_param.lambda2 = lambda2_list(l2);

        %// Pass this modified copy to Learn_weights
        [totBeta,theta,omega,rho,nu] = Learn_weights(dictionary(train_set,:), y(train_set,:), this_param); 
    end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理Matlab parfor循环中的未分类变量? 的相关文章

  • 如何让MCR启动时间快

    我将 matlab 程序转换为 net 程序集 即 dll 文件 我制作了一个控制台 C 应用程序 添加了 dll 文件并从 php 调用它 每次调用 exe 时都会调用 MCR 如何使 MCR 在服务器启动时初始化 并且即使在一段时间后调
  • matlab mex 文件和 C++ dll (Windows)

    我有一个带有 Test 类的 DLL 标题 class MY EXPORT Test public int doit const string str 和来源 int Test doit const string str return in
  • 计算数组中接下来的 n 个元素的乘积

    我想计算下一个的乘积n矩阵的相邻元素 号码n要相乘的元素数应在函数的输入中给出 例如 对于此输入 我应该从第一个开始计算每 3 个连续元素的乘积 p ind max product 1 2 2 1 3 1 3 这给出了 1 2 2 2 2
  • Matlab Mex文件编译

    我正在尝试编译一个 mex 文件以在 matlab 中使用套接字连接 问题是它总是说我没有安装sdk或编译器 但我已经安装了 Visual Studio 2010 Express Visual Studio 2012 Express Vis
  • MATLAB 滚动图

    我有一个脑电图数据库 我想绘制它 数据库是一个19 1000 134的矩阵 其中 19 是通道数 在第一种方法中 我只使用一个渠道 1000 个样本大小 采样率为 500 Hz 时为 1000 个点 即 2 秒数据 134 epochs的数
  • 使用mat2cell将MxN的矩阵划分为1xN大小的M矩阵

    我有一个大小为 MxN 的矩阵 比方说 1867x3 1867 行和 3 列 我想将其分成 1867 个大小为 1x3 的单元格 我使用了mat2cell X 1 1866 这里X是矩阵 1867x3 结果给出了两个单元格 一个单元格的大小
  • 句柄类和值类的区别

    我有一些 C 背景 想使用 Matlab 中的类 句柄和值类有什么区别 我知道如果我想定义一个带有重载运算符 例如 和 的矩阵类 我会使用值类 然而 有时 当我选择一个手柄类时 事情似乎只对我有用 MathWorks 提供了一些有关其用途的
  • 为什么旋转 3D 点云后顶点法线会翻转?

    我有两个人脸 3D 点云样本 蓝色点云表示目标面 红色点云表示模板 下图显示目标面和模板面在不同方向上对齐 目标面大致沿 x 轴 模板面大致沿 y 轴 Figure 1 The region around the nose is displ
  • 如何在 Matlab 中对数组应用低通或高通滤波器?

    有没有一种简单的方法可以将低通或高通滤波器应用于 MATLAB 中的数组 我对 MATLAB 的强大功能 或数学的复杂性 有点不知所措 需要一个简单的函数或一些指导 因为我无法从文档或网络搜索中找到答案 看着那 这filter http w
  • 什么是 ANN 中的纪元以及它如何转换为 MATLAB 中的代码?

    我试图理解 并可视化 训练人工神经网络的时代到底是什么 我们有一个包含约 7000 个产品的训练集 其中有 10 个特征 输入 这些产品必须根据这 10 个输入分为 7 个类别 我们的 ANN 有 10 个输入 这些输入进入由 10 个神经
  • 如何告诉 mex 链接到 /usr/lib 中的 libstdc++.so.6 而不是 MATLAB 目录中的 libstdc++.so.6?

    现在 MATLAB 2012a 中的 mex 仅正式支持 gcc 4 4 6 但我想使用 gcc 4 7 风险自负 现在如果我直接用 mex 编译一些东西 它会抱怨 usr lib gcc i686 linux gnu 4 7 cc1plu
  • matlab中的排列函数是如何工作的

    这是一个有点愚蠢的问题 但我似乎无法弄清楚排列在 matlab 中是如何工作的 以文档为例 A 1 2 3 4 permute A 2 1 ans 1 3 2 4 到底是怎么回事 这如何告诉 matlab 3 和 2 需要交换 哇 这是我迄
  • matlab中的正则逻辑回归代码

    我正在尝试正则化 LR 在 matlab 中使用以下公式很简单 成本函数 J theta 1 m sum y i log h x i 1 y i log 1 h x i lambda 2 m sum theta j 梯度 J theta t
  • 如何在 matlab 中创建由多个 3d 图像数据数组组成的数组

    我正在阅读 15 张图片imagedata imread imagename jpg 它的大小总是320 by 320 by 3 如何将数据放入数组中 使用 for for 循环 以便在访问新数组的第一个元素时获得输入的第一个图像的 RGB
  • 如何在文本集中创建所有字符组合?

    例如 我有这样的文本集 第 1 栏 a b 第 2 栏 l m n 第 3 栏 v w x y 我想将它们组合起来以获得如下输出 alv alw alx aly amv amw amx amy 这将输出 24 种文本组合 如果我只使用前两列
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • 图像处理 - 使用 opencv 进行服装分割

    我正在使用 opencv 进行服装特征识别 第一步 我需要通过从图像中移除脸部和手来分割 T 恤 任何建议表示赞赏 我建议采用以下方法 Use 阿德里安 罗斯布鲁克的用于检测皮肤的皮肤检测算法 谢谢罗莎 格隆奇以获得他的评论 在方差图上使用
  • Matlab 的 imresize 函数中用于插值的算法是什么?

    我正在使用 Matlab Octaveimresize 对给定的二维数组重新采样的函数 我想了解如何使用特定的插值算法imresize works 我在Windows上使用八度 e g A 1 2 3 4 是一个二维数组 然后我使用命令 b
  • 给定协方差矩阵,在Matlab中生成高斯随机变量

    Given a M x M期望的协方差 R 以及所需数量的样本向量 N计算一个N x M高斯随机向量 X在普通 MATLAB 中 即不能使用r mvnrnd MU SIGMA cases 不太确定如何解决这个问题 通常你需要一个协方差并且意
  • 检测数据集中线性行为的算法

    我已经发布了一个关于对数据集的一部分进行多项式拟合的算法 https stackoverflow com q 17595932 2320757前一段时间收到一些建议去做我想做的事 但我现在面临另一个问题 我尝试应用答案中建议的想法 我的目标

随机推荐

  • 将数据框中的每个列表转换为普通列

    我从网络上的多个来源生成了一个数据框 这些数据框事先经过清理 然后使用 cleans lt ls cleans lt cleans grepl Clean News cleans 我第一次尝试将它们绑定在一起的灵感来自 Stack Over
  • 嵌入 YouTube 播放列表,以便播放列表选项始终可见。

    有没有办法利用带有播放列表的 YouTube 嵌入式播放器并使播放列表始终可见 或者 有没有办法默认打开播放列表按钮 到目前为止 我的研究表明 showinfo 1 选项用于使播放列表始终可见 但这似乎不再起作用 showinfo 仅适用于
  • 按顺序插入数组

    简单来说 我正在处理的项目的一部分让我采用按顺序降序的数组并添加一个元素 以便数组保持顺序 最初我以为只要将元素添加到数组中 然后实现 Comparable 后进行排序就可以了 但后来发现任何类型的排序算法都是被禁止的 收藏亦然 有点不知道
  • DB->count() 返回与 count(DB->get()) 不同的值

    我正在尝试运行最简单的查询 DB table user visits gt groupBy user id gt count 但它返回了错误的数字 8 如果我把它改成这样 count DB table user visits gt grou
  • 使用递归从二叉搜索树中删除节点

    因此 我尝试使用类中的这两个函数从树中删除节点 不幸的是 它只是没有删除任何内容 我想知道它出了什么问题 任何帮助将不胜感激 def Find Min self node current node while current left is
  • 将 Azure 数据库配置为只读

    有没有办法将 Azure sql 数据库临时配置为只读 在我尝试创建只读用户时 我运行了以下命令 CREATE LOGIN reader WITH password successful CREATE USER readerUser FRO
  • 如何在iPad中使用UIImagePickerController?

    您好 我正在开发一个通用应用程序 iPhone iPad 一个功能是我必须从相册中选择一张照片并将其显示在 UIImageView 上 现在的问题是它在 iPhone 上运行良好 但当我尝试打开相册时它崩溃了 我在操作表委托中的代码是这样的
  • 由于 MPI init 中止,mpiexec 失败

    我正在尝试安装MPICH http en wikipedia org wiki MPICH2 在运行 Ubuntu 11 04 Natty Narwhal 的 64 位机器上 我用了 sudo apt get install mpich2
  • 每次调用或打开页面时都会增加变量吗?

  • 如何使用 HTTPS 代理启动 VSCode chrome 调试器

    我之前曾在没有 SSL 代理的情况下从 VSCode 启动过 chrome 所以我猜这就是我问题的根源 这是我的 VSCode launch json 配置 name Launch Chrome request launch type pw
  • protege 中的自反属性

    This https ufile io rcv9m是我用 protege 5 创建的本体 如果我做cl1 and cl2不相交 那么本体是不一致的 但是如果我取消选中is friend of反身性的 本体论不再不一致 我的本体有什么问题吗
  • IIS7 应用程序请求路由 HTTPS

    我有一个反向代理 可将流量路由到我的应用程序服务器 我的公共网站有登录功能 通过 HTTPS 提供服务 SSL 证书仅安装在反向代理服务器中 我的应用服务器没有 SSL 证书 反向代理服务器中启用了 SSL 卸载 到目前为止效果很好 我可以
  • 如果 Task Runner Explorer 任务失败则取消构建

    我正在使用 Visual Studio 任务运行程序 2015 来运行绑定到构建之前的 Gulp 任务 我已经将其设置为当 gulp 任务失败时 它会发送退出代码 1 并在最后显示 进程以代码 1 终止 然而构建仍在继续 这将取消团队城市中
  • 如何在 Perforce 2013 之前将搁置的变更列表取消搁置到另一个分支?

    Using Perforce 服务器 2012 2 538478 如何将文件从主干取消搁置到另一个分支 当尝试这样做时 我得到 filename not mapped to your workspace view 在 Perforce 20
  • jdt.core Java 模型的 JUnit 测试

    我正在尝试为我的代码进行一些 JUnit 测试 但问题是 我使用了 ICompilationUnit IPackageFragment ITypes 等 Java 模型 我不知道如何创建一些 ICompilationUnit 然后进行测试
  • 如何在由空格分隔的字符串的中点添加换行符

    使用 php 如何在字符串相对中间的空白处插入换行符 或者换句话说 如何计算句子中的单词数 然后在句子的中间点换行 这个想法是为了避免博客文章标题第二行出现寡妇 废弃的单词 方法是将每个标题切成两半 如果标题占用一行以上 则将其放在两行上
  • C# 中反射的 SetValue

    考虑这段代码 var future new Future future GetType GetProperty info Name SetValue future converted 在上面的代码中 我们应该传递两个参数SetValue 首
  • SceneKit - 如何获取 .dae 模型的动画?

    好吧 我在这里使用 ARKit 和 SceneKit 我在查看其他涉及 SceneKit 试图在其中建立模型的问题时遇到了麻烦 dae格式化并加载各种动画以使该模型运行 现在我们在 iOS11 中似乎某些解决方案不起作用 这是我从基地获取模
  • Haskell 中是否执行单子法则?

    来自 Haskell 维基 Monad 可以被视为各种标准编程接口 数据或控制结构 由 Monad 类捕获 全部 常见的单子是它的成员 class Monad m where gt gt m a gt a gt m b gt m b gt
  • 如何处理Matlab parfor循环中的未分类变量?

    我有以下代码 我想使其并行 但不幸的是 当我使用 parfor 循环时 出现以下错误 这是代码 parfor l1 1 length lambda1 list over l1 for l2 1 length lambda2 list par