collapse_sum_like(data * transpose(grad), weight)]
+@register_gradient("reshape")
+def reshape_grad(orig, grad):
+ """Gradient of reshape"""
+ return [reshape_like(grad, orig.args[0])]
+
+
@register_gradient("nn.batch_flatten")
def batch_flatten_grad(orig, grad):
"""Returns grad reshaped to data dims"""
import tvm
from tvm import relay
from tvm.relay import create_executor, transform
-from tvm.relay.testing import ctx_list
+from tvm.relay.testing import ctx_list, check_grad
def run_infer_type(expr):
mod = relay.Module.from_expr(expr)
assert zz.checked_type == relay.ty.TensorType(oshape, "float32")
func = relay.Function([x], z)
+ check_grad(func)
x_data = np.random.uniform(low=-1, high=1, size=shape).astype("float32")
ref_res = np.reshape(x_data, oshape)
for target, ctx in ctx_list():