Good that you found a fix. Your example code is strange, bit it could be
due to over simplification.

But I just wanted to remind you that using 2 is could be simpler and maybe
more clear depending of the details or your real code. Just don't forget
that option.

Fred

Le dim. 5 mars 2017 05:19, Adam Becker <[email protected]> a écrit :

> Nevermind, I figured it out. I had to disable constant folding and wrap
> with tensor.elemwise.
>
>
> On Sunday, March 5, 2017 at 10:28:39 AM UTC+8, Adam Becker wrote:
>
> Hi,
>
> I'm writing a elemwise Op with special purpose, it's c_code should be
> different when it's working with tensor objects. (Actually, it's for
> gh:#5471 <https://github.com/Theano/Theano/issues/5471>)
>
> Current I'm only working with the CPU version.
>
> Here's the approach I'm taking so far, I modified this line in
> tensor/elemwise.py
> <https://github.com/Theano/Theano/blob/master/theano/tensor/elemwise.py#L946>
> into:
>
> defines = "#define TENSOR_ELEMWISE"
> undefs = "#undef TENSOR_ELEMWISE"
>
> The elemwise Op looks like:
>
> class MyOp(scalar.ScalarOp):
>     nin = 0
>     # < ... >
>     def c_code(self, node, name, inputs, outputs, sub):
>         out, = outputs
>         op_name = type(self).__name__
>         code = '''
>         #ifndef TENSOR_ELEMWISE
>         %(out)s = 1227;
>         #else
>         %(out)s = 1337;
>         #endif
>         ''' % locals()
>         return code
>
> However, even though I build a graph with matrix input, the elemwise Op
> still takes the "1227" branch.
> Further investigation of generated code shows MyOp is compiled into a
> separate mod.cpp than the main elemwise loop.
>
> I suppose this could be due to a few optimizations. However, as I'm still
> unfamiliar with opt code base, I couldn't figure out where.
>
> Any clue how to force the c_code of MyOp into the elemwise loop, so that
> the "1337" branch will be taken when dealing with tensor?
>
> Thanks.
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "theano-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"theano-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to