|
|
1
20
是否已尝试使用nlm()函数?不知道是不是快了很多,但确实提高了速度。同时检查选项。optim默认使用一个慢算法。使用拟牛顿算法(method=“BFGS”)而不是默认算法,可以获得5倍以上的加速比。如果您不太关心最后的数字,还可以将nlm()的公差级别设置得更高,以获得更高的速度。
|
|
|
3
5
我是R软件包的作者
最佳平行
,这对你的情况可能有帮助。该软件包提供了基于梯度优化方法的并行版本
|
|
4
2
补充:从评论中,很明显optf9被用作优化引擎。这意味着大部分时间很可能都花在评估R中的目标函数上。虽然C函数可能被用于下面的一些操作,但仍然有解释器开销。有一种快速的方法可以确定R中的哪些代码行和函数调用大部分时间是由它们负责的,那就是用Escape键暂停它并检查堆栈。如果一条语句占用X%的时间,那么它将占用X%的时间。您可能会发现,有些操作不属于C,应该属于C。当您找到一种并行化R执行的方法时,这种方法得到的任何加速因子都将被保留。 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 1 年前 |
|
|
Daniel Lobo · 使用约束进行优化 1 年前 |
|
Sergio · python中大量数字的乘法 1 年前 |
|
|
Sergey Dev · 临时表与表变量 2 年前 |
|
|
John · 减少C中的内存消耗++ 2 年前 |