草庐IT

OPTIMIZATION

全部标签

python - scipy优化中的整数步长最小化

我想使用scipy.optimize.minimize调整计算机视觉算法.现在我只想调整两个参数,但参数的数量最终可能会增加,所以我想使用一种可以进行高维梯度搜索的技术。SciPy中的Nelder-Mead实现似乎很合适。我把代码都设置好了,但似乎最小化函数真的想使用步长小于1的浮点值。当前的参数集都是整数,一个参数的步长为1另一个的步长为2(即该值必须是奇数,如果不是我要优化的东西,会将其转换为奇数)。大致一个参数是以像素为单位的窗口大小,另一个参数是阈值(0-255的值)。值得我使用来自gitrepo的全新scipy版本。有谁知道如何告诉scipy为每个参数使用特定的步长?有什么方

python - scipy优化中的整数步长最小化

我想使用scipy.optimize.minimize调整计算机视觉算法.现在我只想调整两个参数,但参数的数量最终可能会增加,所以我想使用一种可以进行高维梯度搜索的技术。SciPy中的Nelder-Mead实现似乎很合适。我把代码都设置好了,但似乎最小化函数真的想使用步长小于1的浮点值。当前的参数集都是整数,一个参数的步长为1另一个的步长为2(即该值必须是奇数,如果不是我要优化的东西,会将其转换为奇数)。大致一个参数是以像素为单位的窗口大小,另一个参数是阈值(0-255的值)。值得我使用来自gitrepo的全新scipy版本。有谁知道如何告诉scipy为每个参数使用特定的步长?有什么方

python - 如何在有约束的 scipy 中使用最小化函数

我需要一些关于python(scipy)中优化函数的帮助问题是优化f(x)其中x=[a,b,c...n]。约束条件是a、b等的值应介于0和1之间,并且sum(x)==1。scipy.optimise.minimize函数似乎最好,因为它不需要微分。我如何传递论点?使用排列创建一个ndarray太长了。我现在的代码如下:-importitertoolsasiterall=iter.permutations([0.0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1.0],6)ifsum==1all_legal=[]foriinall:ifnp.sum(i)==1:#printnp

python - 如何在有约束的 scipy 中使用最小化函数

我需要一些关于python(scipy)中优化函数的帮助问题是优化f(x)其中x=[a,b,c...n]。约束条件是a、b等的值应介于0和1之间,并且sum(x)==1。scipy.optimise.minimize函数似乎最好,因为它不需要微分。我如何传递论点?使用排列创建一个ndarray太长了。我现在的代码如下:-importitertoolsasiterall=iter.permutations([0.0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1.0],6)ifsum==1all_legal=[]foriinall:ifnp.sum(i)==1:#printnp

python - 优化Python代码

我一直在研究interviewstreet.com上的一个编码难题,我遇到了一个效率问题。有人能建议我在哪里修改代码以使其更快、更高效吗?Here'sthecodeHere'stheproblemstatementifyou'reinterested 最佳答案 如果您的问题是一般优化python代码(我认为应该是;),那么您可以做各种无遗嘱的事情,但首先:您可能不应该过分优化Python代码!如果您正在使用最快的算法来解决您试图解决的问题,而Python的速度不够快,那么您可能应该使用不同的语言。也就是说,您可以采用几种方法(因为有

python - 优化Python代码

我一直在研究interviewstreet.com上的一个编码难题,我遇到了一个效率问题。有人能建议我在哪里修改代码以使其更快、更高效吗?Here'sthecodeHere'stheproblemstatementifyou'reinterested 最佳答案 如果您的问题是一般优化python代码(我认为应该是;),那么您可以做各种无遗嘱的事情,但首先:您可能不应该过分优化Python代码!如果您正在使用最快的算法来解决您试图解决的问题,而Python的速度不够快,那么您可能应该使用不同的语言。也就是说,您可以采用几种方法(因为有

python - 在优化的同时保持代码可读性

我正在用Python和C编写一个科学程序,其中包含一些复杂的物理模拟算法。在实现算法之后,我发现有很多可能的优化来提高性能。常见的是预先计算值,使计算脱离循环,用更复杂的矩阵算法替换简单的矩阵算法等。但是出现了一个问题。未经优化的算法要慢得多,但它的逻辑和与理论的联系看起来更加清晰易读。此外,扩展和修改优化算法也更加困难。所以,问题是-我应该使用哪些技术来保持可读性同时提高性能?现在我正在尝试保持快速和清晰的分支并并行开发它们,但也许有更好的方法? 最佳答案 作为一般评论(我对Python不太熟悉):我建议您确保您可以轻松地将“引用

python - 在优化的同时保持代码可读性

我正在用Python和C编写一个科学程序,其中包含一些复杂的物理模拟算法。在实现算法之后,我发现有很多可能的优化来提高性能。常见的是预先计算值,使计算脱离循环,用更复杂的矩阵算法替换简单的矩阵算法等。但是出现了一个问题。未经优化的算法要慢得多,但它的逻辑和与理论的联系看起来更加清晰易读。此外,扩展和修改优化算法也更加困难。所以,问题是-我应该使用哪些技术来保持可读性同时提高性能?现在我正在尝试保持快速和清晰的分支并并行开发它们,但也许有更好的方法? 最佳答案 作为一般评论(我对Python不太熟悉):我建议您确保您可以轻松地将“引用

python - PyTorch:如何在任何给定时刻更改优化器的学习率(无 LR 计划)

在PyTorch中是否可以在训练过程中动态改变优化器的学习率(我不想事先定义学习率计划)?假设我有一个优化器:optim=torch.optim.SGD(model.parameters(),lr=0.01)现在由于我在训练期间执行的一些测试,我意识到我的学习率太高,所以我想将其更改为0.001。似乎没有方法optim.set_lr(0.001)但有什么方法可以做到这一点吗? 最佳答案 所以学习率存储在optim.param_groups[i]['lr']中。optim.param_groups是可以具有不同学习率的不同权重组的列表

python - PyTorch:如何在任何给定时刻更改优化器的学习率(无 LR 计划)

在PyTorch中是否可以在训练过程中动态改变优化器的学习率(我不想事先定义学习率计划)?假设我有一个优化器:optim=torch.optim.SGD(model.parameters(),lr=0.01)现在由于我在训练期间执行的一些测试,我意识到我的学习率太高,所以我想将其更改为0.001。似乎没有方法optim.set_lr(0.001)但有什么方法可以做到这一点吗? 最佳答案 所以学习率存储在optim.param_groups[i]['lr']中。optim.param_groups是可以具有不同学习率的不同权重组的列表