所以我尝试使用scipy局部最小化一个复杂函数。优化,最小化。由于我需要良好的梯度,以便平滑地执行局部优化,但为了手动编写导数,函数非常复杂,因此我决定使用Autoptim作为中间人,使用自动微分包Autograd来处理我的优化,以获得梯度
在安装了软件包(以及Autograd)之后,我打开了python终端,以便运行一些初步测试,以检查scipy、Autograd和AutoTim之间的安装和软件包集成是否顺利进行。然后,AutoTim在导入时立即引发错误(在import autoptim
行)。由于解释器给出了所引发的全部异常堆栈,因此我转到了更深的层,以查看是哪一行启动了停止解释器的级联
我找到的行是autoptim.py的第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”编写的。我检查了一下是否有未闭合的括号,事实并非如此。我使用的是Python3,所以我认为这一行可能是用Python2语法编写的,对于Python3解释器来说是错误的,但据我所知,这两个版本之间的差异非常小,并且两者之间存在一些(尽管不完全)可追溯性
那么是什么原因呢?我错过了什么
那条线怎么了?
下面是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
作为一种解决方法,您可以显式构建要解压缩的所需列表:
相关问题 更多 >
编程相关推荐