回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>函数的签名是</p>
<pre><code>def SLBQP(Q, q, u, a, x, eps=1e-6, maxIter=1000):
</code></pre>
<p>它返回一个float64</p>
<p>参数的类型包括:</p>
<pre><code>Q -- np.array([[1., 2.], [4., 5.]])
q -- np.array([1.,2.,3.,4.])
u -- a scalar
a -- np.array([1.,2.,3.,4.])
x -- np.array([1.,2.,3.,4.])
</code></pre>
<p>我试过了</p>
<pre><code>@jit('f8(f8[:,:], f8[:], f8, f8[:], f8[:], f8, i4)',nopython=True)
def SLBQP(Q, q, u, a, x, eps=1e-6, maxIter=1000):
</code></pre>
<p>这给了我一个错误:</p>
<pre><code>Invalid use of Function(<built-in function array>) with argument(s) of type(s): (array(float64, 1d, C))
* parameterized
In definition 0:
TypingError: array(float64, 1d, C) not allowed in a homogeneous sequence
raised from /Users/gerardozinno/Desktop/ProgettoML/venv/lib/python3.8/site-packages/numba/typing/npydecl.py:472
In definition 1:
TypingError: array(float64, 1d, C) not allowed in a homogeneous sequence
raised from /Users/gerardozinno/Desktop/ProgettoML/venv/lib/python3.8/site-packages/numba/typing/npydecl.py:472
</code></pre>
<p>我也试过:</p>
<pre><code>@jit('numba.float64(numba.array(float64, 2d, C), numba.array(float64, 1d, C), numba.float64, numba.array(float64, 1d, C), numba.array(float64, 1d, C), numba.float64, numba.int64)',nopython=True)
</code></pre>
<p>它给了我一个语法错误</p>
<p>编辑:</p>
<p>我试着用这个签名:</p>
<pre><code>@nb.njit('f8(f8[:,:], f8[:], f8, f8[:], f8[:], f8, i4)')
</code></pre>
<p>由Thane Brooker在回答部分提出,它给了我以下错误:</p>
<pre><code>Invalid use of Function(<built-in function array>) with argument(s) of type(s): (array(float64, 1d, C))
* parameterized
In definition 0:
TypingError: array(float64, 1d, C) not allowed in a homogeneous sequence
raised from /Users/gerardozinno/Desktop/ProgettoML/venv/lib/python3.8/site-packages/numba/typing/npydecl.py:472
In definition 1:
TypingError: array(float64, 1d, C) not allowed in a homogeneous sequence
raised from /Users/gerardozinno/Desktop/ProgettoML/venv/lib/python3.8/site-packages/numba/typing/npydecl.py:472
This error is usually caused by passing an argument of a type that is unsupported by the named function.
[1] During: resolving callee type: Function(<built-in function array>)
[2] During: typing of call at /Users/gerardozinno/Desktop/NUOVO/ProgettoML/svr/SLBQP.py (119)
File "SLBQP.py", line 119:
def SLBQP(Q, q, u, a, x, eps=1e-6, maxIter=1000):
<source elided>
v = np.dot(Qx,x) + np.dot(q, x)
g = np.array(Qx+q)
^
</code></pre>