所以我试图使用scipy.optimize,minimize在本地最小化一个复杂的函数。由于我需要良好的渐变才能顺利执行局部优化,但是为了手动编写导数,函数非常复杂,因此我决定使用Autoptim作为中间人来使用自动微分软件包Autograd来获取梯度。
安装软件包(以及Autograd)之后,我打开了python终端,以运行一些初步测试,以检查scipy,autograd和autoptim之间的安装以及软件包集成是否顺利进行。然后,Autoptim会在导入后立即引发错误(在“ import autoptim`”行)。由于解释器给出了所提出的全部异常,因此我进入了更深的层次,看看是哪条线启动了停止解释器的级联。
我发现的行是autoptim.py的第88行:
87. optim_vars = _convert_to_tuple(optim_vars)
88. precon_optim_vars = precon_fwd(\*ptim_vars,\*rgs)
89. n_args = len(args)
Python解释器引发了一个无效的语法异常,这意味着该行中的某些内容不是用“ Python”编写的。我检查是否有一些未封闭的括号,事实并非如此。我正在使用Python3,因此我发现该行上的某些内容是使用Python2语法编写的,并且它为Python3解释器注册了错误,但是据我了解,这两个版本之间的差异很小,并且存在一些差异(尽管不完整)两者之间具有逆向兼容性。
那有什么呢?我在这里想念什么?
那条线怎么了?
编辑1
这是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(\*ptim_vars, \*rgs)
^
SyntaxError: invalid syntax
问题来源:stackoverflow
直到Python 3.5才引入使用的语法(请参阅PEP 448)。您正在使用Python 3.4。
解决方法是,您可以显式构建所需的列表以进行解压缩:
return objective_function(\*ist(optim_vars + args))
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。