def forward_gpu(self, inputs): x0, x1, t = inputs # コサイン類似度 cos_sim = numpy.array([ numpy.dot(v0, v1) / (numpy.linalg.norm(v0) * numpy.linalg.norm(v1)) for (v0, v1) in zip(x0, x1) ]) # コサイン類似度と、教師類似度の差を計算し、2乗したものを誤差とする return cuda.ndarray([(v - t)**2 for v in cos_sim]) x0, x1 = inputs self.diff = x0 - x1 diff = self.diff.ravel() return diff.dot(diff) / diff.dtype.type(diff.size),
def test_array_gpu(self): self._check_array(cuda.ndarray([1, 2]), 'constant array')