def L_op(self, inputs, outputs, grads): (x, ) = inputs (gz, ) = grads if x.type in complex_types: raise NotImplementedError() if outputs[0].type in discrete_types: if x.type in discrete_types: return [x.zeros_like(dtype=config.floatX)] else: return [x.zeros_like()] cst = np.asarray(2.0 / np.sqrt(np.pi), dtype=upcast(x.type.dtype, gz.type.dtype)) return (-gz * cst * exp(-x * x), )
grad_rtol=div_grad_rtol, inplace=True, ) TestInvInplaceBroadcast = makeBroadcastTester( op=inv_inplace, expected=lambda x: _numpy_true_div(np.int8(1), x), good=_good_inv_inplace, bad_runtime=_bad_runtime_inv, grad_rtol=div_grad_rtol, inplace=True, ) TestModInplaceBroadcast = makeBroadcastTester( op=mod_inplace, expected=lambda x, y: np.asarray(x % y, dtype=upcast(x.dtype, y.dtype)), good=copymod(_good_broadcast_div_mod_normal_float_inplace, ["complex1", "complex2"]), grad_eps=1e-5, inplace=True, ) TestPowInplaceBroadcast = makeBroadcastTester( op=pow_inplace, expected=lambda x, y: x**y, good=_good_broadcast_pow_normal_float_pow, inplace=True, mode=ignore_isfinite_mode, ) TestNegInplaceBroadcast = makeBroadcastTester(