小编axs*_*xsk的帖子

如何快速重塑阵列

在下面的代码中,我使用Julia Optim包来找到关于目标函数的最优矩阵.遗憾的是,提供的优化函数仅支持向量,因此我必须在将矩阵传递给优化函数之前将其转换为向量,并在将其用于目标函数时将其转换回来.

function opt(A0,X)    
    I1(A) = sum(maximum(X*A,1))

    function transform(A)
      # reshape matrix to vector
      return reshape(A,prod(size(A)))
    end

    function transformback(tA)
      # reshape vector to matrix
      return reshape(tA, size(A0))
    end

    obj(tA) = -I1(transformback(tA))
    result = optimize(obj, transform(A0), method = :nelder_mead)
    return transformback(result.minimum)
end
Run Code Online (Sandbox Code Playgroud)

我认为朱莉娅每次都会为此分配新的空间并且感觉很慢,那么解决这个问题的更有效方法是什么呢?

julia

3
推荐指数
1
解决办法
3729
查看次数

标签 统计

julia ×1