> Should our code do this differently? No, that warning can be ignored. We have some things to update internally that will make that go away. See https://github.com/pymc-devs/aesara/issues/338. On Thursday, May 6, 2021 at 8:18:25 PM UTC-5 jerry.m...@gmail.com wrote:
> I'm finding the switch from Theano to Aesara straightforward, our > simulation code produced the same output, and one program runs 19% faster > once there's an ~/.aesara cache! > > This is fantastic. I was getting worried about depending on Theano. > > > It did print two kinds of warnings: > > RuntimeWarning: divide by zero encountered in true_divide > > .../lib/python3.8/site-packages/aesara/graph/fg.py:525: UserWarning: > Variable Elemwise{mul}.0 cannot be replaced; it isn't in the FunctionGraph > > > The first warning is from our code calling NumPy. It turns out that `import > theano` suppresses that warning globally! > > It's great that Aesara doesn't suppress that warning, but it could've > saved debugging time if the release notes mentioned that. :) > > > The second kind of warning comes from deep in Aesara, in code that used to > "just return silently because it makes it easier to implement some > optimizations for multiple-output ops". > > Here's the stack trace (OCR'd from a screen shot of the PyCharm debugger's > "frames" pane): > > replace, fg.py:525 > replace_all_validate, toolbox.py:574 > replace_all_validate_remove, toolbox.py:642 > process_node, opt.py:2058 > apply, opt.py:2535 > optimize, opt.py:84 > apply, opt.py:246 > optimize, opt.py:84 > __call__, opt.py:93 > __init__, types.py:1616 > orig_function, types.py:1971 > pfunc, pfunc.py:524 > function, __init__.py:337 > make_thunk, op.py:970 > make_all, vm.py:1133 > make_thunk, basic.py:293 > create, types.py:1837 > orig_function, types.py:1982 > pfunc, pfunc.py:524 > function, __init__.py:337 > km_loss_function, rna_decay.py:179 > ... > > km_loss_function is in our code: > > import aesara.tensor as T > from aesara import function, gradient > > km = T.dvector() > ... > > J = gradient.jacobian(LossFunction, km) > J_aux = gradient.jacobian(LossFunction_aux, km) > Jacob = function([km], J) > > Should our code do this differently? > Do you need a small test case? > -- --- 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 theano-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/theano-users/0d9c6114-5b49-4166-b00d-2d156eb01df6n%40googlegroups.com.