MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / HLOTensor

Class HLOTensor

imperative/python/megengine/xla/rules/hlotensor.py:11–204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9
10
11class HLOTensor:
12 def __init__(self, tensor, shape=None, dtype=None) -> None:
13 if isinstance(tensor, Sequence):
14 assert len(tensor) > 0, "cannot create HLOTensor from empty sequence"
15 if isinstance(tensor[0], int):
16 tensor = np.array(tensor)
17 else:
18 assert len(tensor) == 1, f"cannot create HLOTensor from {tensor}"
19 tensor = tensor[0]
20 if isinstance(tensor, ir.OpResultList):
21 assert len(tensor) == 1, f"cannot create HLOTensor from {tensor}"
22 tensor = tensor[0]
23
24 if isinstance(
25 tensor, (int, float, np.int_, np.float16, np.float32, np.float64)
26 ):
27 tensor = tensor if dtype is None else np.array(tensor).astype(dtype)
28 tensor = ir_utils.ir_constant(tensor)
29 elif isinstance(tensor, np.ndarray):
30 tensor = tensor if dtype is None else np.array(tensor).astype(dtype)
31 tensor = ir_utils.ir_constant(tensor)
32 else:
33 assert isinstance(
34 tensor, (ir.RankedTensorType, ir.BlockArgument, ir.OpResult)
35 ), type(tensor)
36
37 infered_shape = get_irnode_shape(tensor)
38 infered_dtype = get_irnode_dtype(tensor)
39
40 _check_shape(infered_shape, shape)
41 _check_dtype(infered_dtype, dtype)
42
43 self._tensor = tensor
44 self._shape = infered_shape
45 self._dtype = infered_dtype
46
47 @property
48 def shape(self):
49 return tuple(self._shape)
50
51 @property
52 def dtype(self):
53 return self._dtype
54
55 @property
56 def ndim(self):
57 return len(self.shape)
58
59 @property
60 def tensor(self):
61 return self._tensor
62
63 def __str__(self):
64 return f"HLOTensor(shape={self.shape}, dtype={self.dtype})"
65
66 def __eq__(self, rhs):
67 from .elemwise import equal
68

Callers 15

lowering_opsFunction · 0.85
_all_reduceFunction · 0.85
_reduce_nokeepdimFunction · 0.85
convolution_lowerFunction · 0.85
conv_backward_data_lowerFunction · 0.85
_poolingFunction · 0.85
_select_and_scatterFunction · 0.85
bitcastFunction · 0.85
typecvtFunction · 0.85
_compareFunction · 0.85
_elemwiseFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected