python - python星号语法错误。不知道出了什么问题
问题描述
我正在尝试使用scipy.optimize.minimize
. 因为我需要良好的梯度才能顺利执行局部优化,但是函数非常复杂,以便手动编写导数,我决定使用Autoptim作为中间人来处理我的优化使用自动微分包Autograd以获得梯度。
在我安装了包(以及 Autograd)之后,我打开了我的 python 终端以运行一些初步测试,以检查 scipy、autograd 和 autoptim 之间的安装和包集成是否顺利。然后 Autooptim 在导入时立即引发错误(在行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”编写的。我检查了是否有一些未闭合的括号,但事实并非如此。我正在使用 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))
推荐阅读
- python - Trying to save data in pyqt5
- node.js - Images not preview from run the public folder in Gatsby
- javascript - Uncaught Syntax errors
- javascript - Cannot read property 'getAttribute' of null on TextArea
- arrays - Comparing values in an array and calculating the difference in ranges Numpy Python
- java - How to Sort PriorityQueue in Java with class
- css - How to make this transition in css?
- tensorflow - How to split dataset into test train validation created with textlinedataset?
- python - The program repeats until the input string is quit and disregards the integer input that follows
- java - Event Sourcing with Apache Kafka using rocksdb as eventstore?