python星号语法错误。不知道怎么了

时间:2020-03-16 12:20:31

标签: python python-3.x syntax

所以我试图使用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(*optim_vars,*args)
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(*optim_vars, *args)
                                           ^
SyntaxError: invalid syntax

1 个答案:

答案 0 :(得分:-1)

要使用的语法直到Python 3.5才引入(请参见PEP 448)。您正在使用Python 3.4。

作为一种解决方法,您可以显式构建所需的列表以进行解压缩:

return objective_function(*list(optim_vars + args))