python星号语法错误.不知道出了什么问题



我正在尝试使用scipy.optimize.minimize本地最小化一个复杂的函数。由于我需要良好的梯度来平滑地执行局部优化,但为了手工编写导数,函数非常复杂,我决定使用Autoptim作为中间人,使用自动微分包Autograd来处理我的优化,以获得梯度。

在我安装了软件包(以及Autograd(后,我打开了我的python终端,以便运行一些初步测试,以检查安装以及scipy、Autograd和autoptim之间的软件包集成是否顺利。然后Autoptim在导入时立即引发错误(在import autoptim行(。由于解释器给出了引发的Exceptions的完整堆栈,所以我深入到更深层,看看是哪一行启动了使解释器停止的级联。

我找到的是自动驾驶的第88行

87. optim_vars = _convert_to_tuple(optim_vars)
88. precon_optim_vars = precon_fwd(*optim_vars,*args)
89. n_args = len(args)

Python解释器引发了一个无效语法异常,这意味着该行中的某些内容没有被写入";在Python中";。我检查了一下是否有一些未闭合的括号,但事实并非如此。我使用的是Python 3,所以我认为这一行中的某些内容可能是用Python 2语法编写的,它在Python 3解释器中注册错误,但据我所知,两个版本之间的差异很小,两者之间存在一些(尽管不完全(追溯兼容性。

那是什么呢?我在这里错过了什么?

那条线怎么了

以下是python解释器中导入行的回溯

>>> import autoptim
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.4/dist-packages/autoptim/__init__.py", line 6, in <module>
from .autoptim import minimize  # noqa
File "/usr/local/lib/python3.4/dist-packages/autoptim/autoptim.py", line 95
return objective_function(*optim_vars, *args)
^
SyntaxError: invalid syntax

所使用的语法直到Python 3.5才引入(请参阅PEP 448(。您使用的是Python 3.4。

作为一种变通方法,您可以显式地构建需要解压缩的列表:

return objective_function(*list(optim_vars + args))

相关内容

最新更新