提交 a804ddc9 authored 作者: Vincent Dumoulin's avatar Vincent Dumoulin

Change parent classes, add c_headers and c_compilers methods

上级 773058a5
from theano import Op, Apply
from theano.compat.six import StringIO
from theano.sandbox.cuda import GpuOp
from theano.sandbox.cuda.nvcc_compiler import NVCC_compiler
from theano.sandbox.cuda.kernel_codegen import (nvcc_kernel,
inline_softmax,
inline_softmax_fixed_shared)
class GpuCrossentropySoftmaxArgmax1HotWithBias (GpuOp):
class GpuCrossentropySoftmaxArgmax1HotWithBias(Op):
"""
Implement CrossentropySoftmaxArgmax1HotWithBias on the gpu.
"""
......@@ -31,6 +31,9 @@ class GpuCrossentropySoftmaxArgmax1HotWithBias (GpuOp):
am = y_idx.type()
return Apply(self, [x, b, y_idx], [nll, sm, am])
def c_headers(self):
return ['cuda.h', '<compyte/extension.h>', '<compyte/numpy_compat.h>']
def c_support_code(self):
return """
__global__ void k_xent_sm_1hot_bias(int M, int N,
......@@ -213,10 +216,14 @@ class GpuCrossentropySoftmaxArgmax1HotWithBias (GpuOp):
#return ()
return (4,)
def c_compiler(self):
return NVCC_compiler
gpu_crossentropy_softmax_argmax_1hot_with_bias = GpuCrossentropySoftmaxArgmax1HotWithBias()
class GpuCrossentropySoftmax1HotWithBiasDx (GpuOp):
class GpuCrossentropySoftmax1HotWithBiasDx(Op):
"""
Implement CrossentropySoftmax1HotWithBiasDx on the gpu.
"""
......@@ -242,6 +249,12 @@ class GpuCrossentropySoftmax1HotWithBiasDx (GpuOp):
#return ()
return (6,)
def c_headers(self):
return ['cuda.h', '<compyte/extension.h>', '<compyte/numpy_compat.h>']
def c_compiler(self):
return NVCC_compiler
def c_code(self, node, nodename, inp, out, sub):
dnll, sm, y_idx = inp
dx, = out
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论