from operator import add, floordiv, getitem, mul, neg, pos, setitem, sub import torch __all__ = ['INPLACE_OPS', 'INPLACE_METHOD', 'NON_INPLACE_METHOD'] # TODO fill out the inplace ops INPLACE_OPS = [ add, sub, mul, floordiv, neg, pos, getitem, setitem, getattr, torch.Tensor.cpu, ] # TODO: list all call_methods that are inplace here INPLACE_METHOD = [ 'transpose', 'permute', # TODO: reshape may return a copy of the data if the data is not contiguous 'reshape', 'dim', 'flatten', 'size', 'view', 'unsqueeze', 'to', 'type', 'flatten', ] # TODO: list all call_methods that are not inplace here NON_INPLACE_METHOD = [ 'chunk', 'contiguous', 'expand', 'mean', 'split', ]