skcuda.misc.subtractが私の期待通りに放送していません。このコードでは:なぜscikit-cudaはnumpyのような放送を減算しないのですか?
import numpy as np
import pycuda.gpuarray as gpuarray
import skcuda.misc as gpumisc
import pycuda.autoinit
a = np.ones((3, 1))
b = np.ones((1, 3))
c = a - b
assert np.allclose(c, np.zeros((3, 3)))
a_gpu = gpuarray.to_gpu(a)
b_gpu = gpuarray.to_gpu(b)
c_gpu = gpumisc.subtract(a_gpu, b_gpu)
assert np.allclose(c_gpu.get(), np.zeros((3, 3)))
私はこのエラーを取得する:
TypeError Traceback (most recent call last)
<ipython-input-1-63f3109ba0df> in <module>()
11 a_gpu = gpuarray.to_gpu(a)
12 b_gpu = gpuarray.to_gpu(b)
---> 13 c_gpu = gpumisc.subtract(a_gpu, b_gpu)
14 assert np.allclose(c_gpu.get(), np.zeros((3, 3)))
/appl/pm/vendor/dev/python/lx-x86_64/anaconda2/lib/python2.7/site-packages/skcuda/misc.pyc in subtract(x_gpu, y_gpu)
1032 """
1033
-> 1034 return binaryop_2d("-", operator.sub, False, x_gpu, y_gpu)
1035
1036 def multiply(x_gpu, y_gpu):
/appl/pm/vendor/dev/python/lx-x86_64/anaconda2/lib/python2.7/site-packages/skcuda/misc.pyc in binaryop_2d(c_op, py_op, commutative, x_gpu, y_gpu)
982 return binaryop_matvec(c_op, y_gpu, x_gpu.ravel(), axis=0)
983
--> 984 raise TypeError("unsupported combination of shapes")
985
986 def add(x_gpu, y_gpu):
TypeError: unsupported combination of shapes
誰も私が間違ってやっているかを見ますか?
(私は複数の単語を記述せずに投稿するように見えることはできません。明日明日明日ゾッこのささいなペースでの日からその日に記録された時間の最後の音節に...)
ありがとう。私の簡単な例を得るために、連続した歩幅に沿ってどのように整列させるのですか? –