def verify_pad_default_fill(dshape, pad_width, dtype): x = relay.var("x", relay.TensorType(dshape, dtype)) ndim = len(dshape) pad_width_var = relay.var("pad_width_var", relay.TensorType((ndim, 2), 'int64')) y = relay.nn.pad(x, pad_width_var) yy = run_infer_type(y) assert yy.checked_type == relay.ty.TensorType((relay.Any(),) * ndim, dtype) func = relay.Function([x, pad_width_var], y) data = np.random.uniform(size=dshape).astype(dtype) ref_res = np.pad(data, pad_width) pad_width = np.array(pad_width).astype('int64') verify_func(func, [data, pad_width], ref_res)
def verify_pad(dshape, pad_width, pad_val, dtype): x = relay.var("x", relay.TensorType(dshape, dtype)) ndim = len(dshape) pad_width_var = relay.var("pad_width_var", relay.TensorType((ndim, 2), "int64")) pad_val_var = relay.var("pad_val_var", relay.TensorType((), dtype)) y = relay.nn.pad(x, pad_width_var, pad_val_var) yy = run_infer_type(y) assert yy.checked_type == relay.ty.TensorType((relay.Any(),) * ndim, dtype) func = relay.Function([x, pad_width_var, pad_val_var], y) data = np.random.uniform(size=dshape).astype(dtype) ref_res = np.pad(data, pad_width, "constant", constant_values=(((pad_val,) * 2),) * ndim) pad_width = np.array(pad_width).astype("int64") verify_func(func, [data, pad_width, np.array(pad_val).astype(dtype)], ref_res)