提交 b0a88944 authored 作者: Frederic's avatar Frederic

In perform, use vectorised version of the code.

上级 edd180ad
......@@ -360,11 +360,8 @@ class Softmax(gof.Op):
def perform(self, node, input_storage, output_storage):
x, = input_storage
sm = numpy.zeros_like(x)
for i in xrange(sm.shape[0]):
row = x[i]
sm[i] = numpy.exp(row - numpy.max(row))
sm[i] /= numpy.sum(sm[i])
e_x = numpy.exp(x - x.max(axis=1)[:, None])
sm = e_x / e_x.sum(axis=1)[:, None]
output_storage[0][0] = sm
def grad(self, inp, grads):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论