|
|
|
|
|
|
|
|
|
|
|
import torch |
|
|
|
|
|
|
|
tensor_magic_methods = ["add", ""] |
|
pointwise_magic_methods_with_reverse = ( |
|
"add", |
|
"sub", |
|
"mul", |
|
"floordiv", |
|
"div", |
|
"truediv", |
|
"mod", |
|
"pow", |
|
"lshift", |
|
"rshift", |
|
"and", |
|
"or", |
|
"xor", |
|
) |
|
pointwise_magic_methods = ( |
|
*(x for m in pointwise_magic_methods_with_reverse for x in (m, "r" + m)), |
|
"eq", |
|
"gt", |
|
"le", |
|
"lt", |
|
"ge", |
|
"gt", |
|
"ne", |
|
"neg", |
|
"pos", |
|
"abs", |
|
"invert", |
|
"iadd", |
|
"isub", |
|
"imul", |
|
"ifloordiv", |
|
"idiv", |
|
"itruediv", |
|
"imod", |
|
"ipow", |
|
"ilshift", |
|
"irshift", |
|
"iand", |
|
"ior", |
|
"ixor", |
|
"int", |
|
"long", |
|
"float", |
|
"complex", |
|
) |
|
|
|
pointwise_methods = (*(f"__{m}__" for m in pointwise_magic_methods),) |
|
|
|
pointwise = ( |
|
*(getattr(torch.Tensor, m) for m in pointwise_methods), |
|
torch.nn.functional.dropout, |
|
torch.where, |
|
torch.Tensor.abs, |
|
torch.abs, |
|
torch.Tensor.acos, |
|
torch.acos, |
|
torch.Tensor.acosh, |
|
torch.acosh, |
|
torch.Tensor.add, |
|
torch.add, |
|
torch.Tensor.addcdiv, |
|
torch.addcdiv, |
|
torch.Tensor.addcmul, |
|
torch.addcmul, |
|
torch.Tensor.addr, |
|
torch.addr, |
|
torch.Tensor.angle, |
|
torch.angle, |
|
torch.Tensor.asin, |
|
torch.asin, |
|
torch.Tensor.asinh, |
|
torch.asinh, |
|
torch.Tensor.atan, |
|
torch.atan, |
|
torch.Tensor.atan2, |
|
torch.atan2, |
|
torch.Tensor.atanh, |
|
torch.atanh, |
|
torch.Tensor.bitwise_and, |
|
torch.bitwise_and, |
|
torch.Tensor.bitwise_left_shift, |
|
torch.bitwise_left_shift, |
|
torch.Tensor.bitwise_not, |
|
torch.bitwise_not, |
|
torch.Tensor.bitwise_or, |
|
torch.bitwise_or, |
|
torch.Tensor.bitwise_right_shift, |
|
torch.bitwise_right_shift, |
|
torch.Tensor.bitwise_xor, |
|
torch.bitwise_xor, |
|
torch.Tensor.ceil, |
|
torch.ceil, |
|
torch.celu, |
|
torch.nn.functional.celu, |
|
torch.Tensor.clamp, |
|
torch.clamp, |
|
torch.Tensor.clamp_max, |
|
torch.clamp_max, |
|
torch.Tensor.clamp_min, |
|
torch.clamp_min, |
|
torch.Tensor.copysign, |
|
torch.copysign, |
|
torch.Tensor.cos, |
|
torch.cos, |
|
torch.Tensor.cosh, |
|
torch.cosh, |
|
torch.Tensor.deg2rad, |
|
torch.deg2rad, |
|
torch.Tensor.digamma, |
|
torch.digamma, |
|
torch.Tensor.div, |
|
torch.div, |
|
torch.dropout, |
|
torch.nn.functional.dropout, |
|
torch.nn.functional.elu, |
|
torch.Tensor.eq, |
|
torch.eq, |
|
torch.Tensor.erf, |
|
torch.erf, |
|
torch.Tensor.erfc, |
|
torch.erfc, |
|
torch.Tensor.erfinv, |
|
torch.erfinv, |
|
torch.Tensor.exp, |
|
torch.exp, |
|
torch.Tensor.exp2, |
|
torch.exp2, |
|
torch.Tensor.expm1, |
|
torch.expm1, |
|
torch.feature_dropout, |
|
torch.Tensor.float_power, |
|
torch.float_power, |
|
torch.Tensor.floor, |
|
torch.floor, |
|
torch.Tensor.floor_divide, |
|
torch.floor_divide, |
|
torch.Tensor.fmod, |
|
torch.fmod, |
|
torch.Tensor.frac, |
|
torch.frac, |
|
torch.Tensor.frexp, |
|
torch.frexp, |
|
torch.Tensor.gcd, |
|
torch.gcd, |
|
torch.Tensor.ge, |
|
torch.ge, |
|
torch.nn.functional.gelu, |
|
torch.nn.functional.glu, |
|
torch.Tensor.gt, |
|
torch.gt, |
|
torch.Tensor.hardshrink, |
|
torch.hardshrink, |
|
torch.nn.functional.hardshrink, |
|
torch.nn.functional.hardsigmoid, |
|
torch.nn.functional.hardswish, |
|
torch.nn.functional.hardtanh, |
|
torch.Tensor.heaviside, |
|
torch.heaviside, |
|
torch.Tensor.hypot, |
|
torch.hypot, |
|
torch.Tensor.i0, |
|
torch.i0, |
|
torch.Tensor.igamma, |
|
torch.igamma, |
|
torch.Tensor.igammac, |
|
torch.igammac, |
|
torch.Tensor.isclose, |
|
torch.isclose, |
|
torch.Tensor.isfinite, |
|
torch.isfinite, |
|
torch.Tensor.isinf, |
|
torch.isinf, |
|
torch.Tensor.isnan, |
|
torch.isnan, |
|
torch.Tensor.isneginf, |
|
torch.isneginf, |
|
torch.Tensor.isposinf, |
|
torch.isposinf, |
|
torch.Tensor.isreal, |
|
torch.isreal, |
|
torch.Tensor.kron, |
|
torch.kron, |
|
torch.Tensor.lcm, |
|
torch.lcm, |
|
torch.Tensor.ldexp, |
|
torch.ldexp, |
|
torch.Tensor.le, |
|
torch.le, |
|
torch.nn.functional.leaky_relu, |
|
torch.Tensor.lerp, |
|
torch.lerp, |
|
torch.Tensor.lgamma, |
|
torch.lgamma, |
|
torch.Tensor.log, |
|
torch.log, |
|
torch.Tensor.log10, |
|
torch.log10, |
|
torch.Tensor.log1p, |
|
torch.log1p, |
|
torch.Tensor.log2, |
|
torch.log2, |
|
torch.nn.functional.logsigmoid, |
|
torch.Tensor.logical_and, |
|
torch.logical_and, |
|
torch.Tensor.logical_not, |
|
torch.logical_not, |
|
torch.Tensor.logical_or, |
|
torch.logical_or, |
|
torch.Tensor.logical_xor, |
|
torch.logical_xor, |
|
torch.Tensor.logit, |
|
torch.logit, |
|
torch.Tensor.lt, |
|
torch.lt, |
|
torch.Tensor.maximum, |
|
torch.maximum, |
|
torch.Tensor.minimum, |
|
torch.minimum, |
|
torch.nn.functional.mish, |
|
torch.Tensor.mvlgamma, |
|
torch.mvlgamma, |
|
torch.Tensor.nan_to_num, |
|
torch.nan_to_num, |
|
torch.Tensor.ne, |
|
torch.ne, |
|
torch.Tensor.neg, |
|
torch.neg, |
|
torch.Tensor.nextafter, |
|
torch.nextafter, |
|
torch.Tensor.outer, |
|
torch.outer, |
|
torch.polar, |
|
torch.Tensor.polygamma, |
|
torch.polygamma, |
|
torch.Tensor.positive, |
|
torch.positive, |
|
torch.Tensor.pow, |
|
torch.pow, |
|
torch.Tensor.prelu, |
|
torch.prelu, |
|
torch.nn.functional.prelu, |
|
torch.Tensor.rad2deg, |
|
torch.rad2deg, |
|
torch.Tensor.reciprocal, |
|
torch.reciprocal, |
|
torch.Tensor.relu, |
|
torch.relu, |
|
torch.nn.functional.relu, |
|
torch.nn.functional.relu6, |
|
torch.Tensor.remainder, |
|
torch.remainder, |
|
torch.Tensor.round, |
|
torch.round, |
|
torch.rrelu, |
|
torch.nn.functional.rrelu, |
|
torch.Tensor.rsqrt, |
|
torch.rsqrt, |
|
torch.rsub, |
|
torch.selu, |
|
torch.nn.functional.selu, |
|
torch.Tensor.sgn, |
|
torch.sgn, |
|
torch.Tensor.sigmoid, |
|
torch.sigmoid, |
|
torch.nn.functional.sigmoid, |
|
torch.Tensor.sign, |
|
torch.sign, |
|
torch.Tensor.signbit, |
|
torch.signbit, |
|
torch.nn.functional.silu, |
|
torch.Tensor.sin, |
|
torch.sin, |
|
torch.Tensor.sinc, |
|
torch.sinc, |
|
torch.Tensor.sinh, |
|
torch.sinh, |
|
torch.nn.functional.softplus, |
|
torch.nn.functional.softshrink, |
|
torch.Tensor.sqrt, |
|
torch.sqrt, |
|
torch.Tensor.square, |
|
torch.square, |
|
torch.Tensor.sub, |
|
torch.sub, |
|
torch.Tensor.tan, |
|
torch.tan, |
|
torch.Tensor.tanh, |
|
torch.tanh, |
|
torch.nn.functional.tanh, |
|
torch.threshold, |
|
torch.nn.functional.threshold, |
|
torch.trapz, |
|
torch.Tensor.true_divide, |
|
torch.true_divide, |
|
torch.Tensor.trunc, |
|
torch.trunc, |
|
torch.Tensor.xlogy, |
|
torch.xlogy, |
|
torch.rand_like, |
|
) |
|
|