Python 3.x 雅可比矩阵:类型错误:';功能';对象不支持项分配

Python 3.x 雅可比矩阵:类型错误:';功能';对象不支持项分配,python-3.x,autograd,Python 3.x,Autograd,我正在操作autograd库并计算向量函数f的雅可比矩阵,我想计算在点x=(-1,0.2,0.3)处计算的雅可比矩阵 并向我抛出以下错误: jacobian_cost(np.array([x,x,x])) C:\ProgramData\Anaconda3\lib\site-packages\autograd\tracer.py:48: RuntimeWarning: invalid value encountered in log return f_raw(*args, **kwargs)

我正在操作autograd库并计算向量函数f的雅可比矩阵,我想计算在点x=(-1,0.2,0.3)处计算的雅可比矩阵

并向我抛出以下错误:

jacobian_cost(np.array([x,x,x]))
C:\ProgramData\Anaconda3\lib\site-packages\autograd\tracer.py:48: RuntimeWarning: invalid value encountered in log
  return f_raw(*args, **kwargs)
Traceback (most recent call last):

  File "<ipython-input-94-f5cd2527501d>", line 1, in <module>
    jacobian_cost(np.array([x,x,x]))

  File "C:\ProgramData\Anaconda3\lib\site-packages\autograd\wrap_util.py", line 20, in nary_f
    return unary_operator(unary_f, x, *nary_op_args, **nary_op_kwargs)

  File "C:\ProgramData\Anaconda3\lib\site-packages\autograd\differential_operators.py", line 57, in jacobian
    vjp, ans = _make_vjp(fun, x)

  File "C:\ProgramData\Anaconda3\lib\site-packages\autograd\core.py", line 10, in make_vjp
    end_value, end_node =  trace(start_node, fun, x)

  File "C:\ProgramData\Anaconda3\lib\site-packages\autograd\tracer.py", line 10, in trace
    end_box = fun(start_box)

  File "C:\ProgramData\Anaconda3\lib\site-packages\autograd\wrap_util.py", line 15, in unary_f
    return fun(*subargs, **kwargs)

  File "<ipython-input-90-1d8956a98276>", line 3, in f
    f[0] = np.sin(x[0])+x[1]**2 +np.log(x[2])-7

TypeError: 'function' object does not support item assignment
jacobian_代价(np.数组([x,x,x]))
C:\ProgramData\Anaconda3\lib\site packages\autograd\tracer.py:48:RuntimeWarning:日志中遇到无效值
返回f_原始值(*args,**kwargs)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
jacobian_代价(np.数组([x,x,x]))
文件“C:\ProgramData\Anaconda3\lib\site packages\autograd\wrap\u util.py”,第20行,格式为nary\u f
返回一元运算符(一元运算符f,x,*nary_op_args,**nary_op_kwargs)
文件“C:\ProgramData\Anaconda3\lib\site packages\autograd\differential\u operators.py”,第57行,雅可比格式
vjp,ans=_make_vjp(有趣,x)
文件“C:\ProgramData\Anaconda3\lib\site packages\autograd\core.py”,第10行,make\u vjp
end_值,end_节点=跟踪(start_节点,fun,x)
文件“C:\ProgramData\Anaconda3\lib\site packages\autograd\tracer.py”,第10行,在跟踪中
结束盒=乐趣(开始盒)
文件“C:\ProgramData\Anaconda3\lib\site packages\autograd\wrap\u util.py”,第15行,一元格式
返回乐趣(*斯巴格,**夸格)
文件“”,第3行,在f中
f[0]=np.sin(x[0])+x[1]**2+np.log(x[2])-7
TypeError:“函数”对象不支持项分配
来自自动标签:

有些事情仍有待实施。例如,我们支持索引(x=A[i,j]:]),但不支持赋值(A[i,j]=x),因为数组中的索引与赋值有关

您可以返回类似的内容

返回np.array([np.sin(x[0])+x[1]**2+np.log(x[2])-7,3.0*x[0]+2.0**x[1]-x[2]**3+1.0,x[0]+x[1]+x[2]-5.0])

你可以用雅可比矩阵

jacobian_cost(np.array([x,x,x]))
C:\ProgramData\Anaconda3\lib\site-packages\autograd\tracer.py:48: RuntimeWarning: invalid value encountered in log
  return f_raw(*args, **kwargs)
Traceback (most recent call last):

  File "<ipython-input-94-f5cd2527501d>", line 1, in <module>
    jacobian_cost(np.array([x,x,x]))

  File "C:\ProgramData\Anaconda3\lib\site-packages\autograd\wrap_util.py", line 20, in nary_f
    return unary_operator(unary_f, x, *nary_op_args, **nary_op_kwargs)

  File "C:\ProgramData\Anaconda3\lib\site-packages\autograd\differential_operators.py", line 57, in jacobian
    vjp, ans = _make_vjp(fun, x)

  File "C:\ProgramData\Anaconda3\lib\site-packages\autograd\core.py", line 10, in make_vjp
    end_value, end_node =  trace(start_node, fun, x)

  File "C:\ProgramData\Anaconda3\lib\site-packages\autograd\tracer.py", line 10, in trace
    end_box = fun(start_box)

  File "C:\ProgramData\Anaconda3\lib\site-packages\autograd\wrap_util.py", line 15, in unary_f
    return fun(*subargs, **kwargs)

  File "<ipython-input-90-1d8956a98276>", line 3, in f
    f[0] = np.sin(x[0])+x[1]**2 +np.log(x[2])-7

TypeError: 'function' object does not support item assignment