Skip to content

Commit a8b8d2b

Browse files
committed
Add LogSigmoid
1 parent d22acfd commit a8b8d2b

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

test/base.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,11 @@ def base_test():
3232
model_2 = lambda x: F.softmax(F.tanh(fc3(x)))
3333
model_3 = lambda x: F.softmax(F.sigmoid(fc3(x)))
3434
model_4 = lambda x: F.softmax(F.leaky_relu(fc4(x)))
35+
model_5 = lambda x: F.softmax(F.logsigmoid(fc4(x)))
3536

3637
data = Variable(torch.rand(10,10))
3738

38-
out = model_0(data) + model_1(data) * model_2(data) / model_3(data) / 2.0 + 2.0 * model_4(data) + 1 - 2.0
39+
out = model_0(data) + model_1(data) * model_2(data) / model_3(data) / 2.0 + 2.0 * model_4(data) + model_5(data) + 1 - 2.0
3940

4041
out_path = 'out'
4142
if not os.path.isdir(out_path):

torch2c/emitters.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,31 @@ def free_tpl(self):
590590
register(Sigmoid, torch.autograd._functions.pointwise.Sigmoid)
591591

592592

593+
class LogSigmoid(Emitter):
594+
595+
def __init__(self, obj, prevfns):
596+
Emitter.__init__(self, obj, prevfns)
597+
self.def_vars({
598+
'input': id(prevfns[0]),
599+
})
600+
self.infer_type_var = 'input'
601+
602+
def call_tpl(self):
603+
return '''
604+
TH${T}Tensor *$id = TH${T}Tensor_new();
605+
TH${T}Tensor *buffer_$id = TH${T}Tensor_new();
606+
THNN_${T}LogSigmoid_updateOutput(NULL,$input,$id,buffer_$id);
607+
'''
608+
609+
def free_tpl(self):
610+
return '''
611+
TH${T}Tensor_free($id);
612+
TH${T}Tensor_free(buffer_$id);
613+
'''
614+
615+
register(LogSigmoid, torch.nn._functions.thnn.auto.LogSigmoid)
616+
617+
593618
class Noop(Emitter):
594619

595620
def __init__(self, obj, prevfns):

0 commit comments

Comments
 (0)