def index_fill(g, self, dim, index, value): dim_value = sym_help._parse_arg(dim, 'i') if sym_help._operator_export_type == torch.onnx.OperatorExportTypes.ONNX_ATEN_FALLBACK: return g.op("ATen", self, index, value, dim_i=dim_value, operator_s="index_fill") expanded_index_shape, expanded_index = sym_help._index_fill_reshape_helper(g, self, dim, index) value = sym_help._maybe_get_scalar(value) value = sym_help._if_scalar_type_as(g, value, self) expanded_value = expand(g, value, expanded_index_shape, None) return scatter(g, self, dim, expanded_index, expanded_value)
def index_fill(g, self, dim, index, value): dim_value = sym_help._parse_arg(dim, "i") if sym_help.is_caffe2_aten_fallback(): return g.at("index_fill", self, index, value, overload_name="int_Scalar", dim_i=dim_value) expanded_index_shape, expanded_index = sym_help._index_fill_reshape_helper( g, self, dim, index) value = sym_help._maybe_get_scalar(value) value = sym_help._if_scalar_type_as(g, value, self) expanded_value = expand(g, value, expanded_index_shape, None) return scatter(g, self, dim, expanded_index, expanded_value)
def addcmul_symbolic(g, self, tensor1, tensor2, value=1, out=None): from torch.onnx.symbolic_opset9 import add, mul if out is not None: sym_help._unimplemented("addcmul", "Out parameter is not supported for addcmul") x = mul(g, tensor1, tensor2) value = sym_help._maybe_get_scalar(value) if sym_help._scalar(value) != 1: value = sym_help._if_scalar_type_as(g, value, x) if not sym_help._is_value(value): value = g.op("Constant", value_t=torch.tensor(value, dtype=torch.float32)) x = mul(g, x, value) return add(g, self, x)
def constant_pad_nd(g, input, padding, value=None): mode = "constant" value = sym_help._maybe_get_scalar(value) value = sym_help._if_scalar_type_as(g, value, input) pad = _prepare_onnx_paddings(g, sym_help._get_tensor_rank(input), padding) return g.op("Pad", input, pad, value, mode_s=mode)
def _comparison_operator(g, input, other, op_name): other = sym_help._maybe_get_scalar(other) other = sym_help._if_scalar_type_as(g, other, input) _, input, other = _try_cast_integer_to_float(g, input, other) return g.op(op_name, input, other)