【问题标题】:Fmincon in matlab running out of memorymatlab中的Fmincon内存不足
【发布时间】:2011-04-16 02:20:16
【问题描述】:

我正在使用 Matlab 的 fmincon 来优化目标函数,该函数是 2 个向量之间的 l2 范数。还有一个不等式约束,它是要优化的向量和其他一些常数向量之间的另一个 l2 范数。所以基本上参数的数量是这个向量的大小,我试图在 l2 意义上最小化。

|| M*s - s ||_2 s.t. ||s-t||_2

M 是一个常数矩阵,t 是一个常数向量,而 epsilon 是一个常数。

所以现在对我来说问题是 s 很大。它可以有 400 到 20000 个变量。现在 fmincon 在内部尝试存储矩阵时会耗尽内存。有没有办法解决这个问题?

谢谢!

【问题讨论】:

    标签: memory matlab


    【解决方案1】:

    当您运行 fmincon 时,您应该考虑添加一组选项。看optimset, 这样做:

    OPTI = optimset('MaxIter',1000)
    

    或查看所有optimization options

    然后

    get_val = fmincon(... , OPTI)
    

    如果这不起作用,您应该发布您的代码

    【讨论】:

      【解决方案2】:

      这并不能真正解决我的问题。我最终意识到我需要传递一个用户提供的“稀疏”粗麻布矩阵(之前我使用的是粗麻布的默认设置,它是通过有限差分逼近的)。一旦我这样做了,我的记忆就停止了。但无论如何,谢谢!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-23
        • 2014-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-25
        • 2015-06-26
        相关资源
        最近更新 更多