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

Function resize_linear_helper

imperative/python/megengine/xla/rules/vision.py:20–46  ·  view source on GitHub ↗
(ilen: int, olen: int)

Source from the content-addressed store, hash-verified

18
19
20def resize_linear_helper(ilen: int, olen: int):
21 assert olen != 0 and ilen != 0
22 scale = olen / ilen
23 if ilen == 1:
24 alpha0 = ones((olen,), dtype=np.float32)
25 idx0 = zeros((olen,), dtype=np.int32)
26 alpha1 = zeros((olen,), dtype=np.float32)
27 idx1 = zeros((olen,), dtype=np.int32)
28 else:
29 base = iota(dtype=np.float32, shape=(olen,), dimension=-1)
30 alpha = (base + 0.5) / scale - 0.5
31 origin_idx = floor(alpha)
32 alpha = alpha - origin_idx
33 origin_idx_l0 = origin_idx < 0.0
34 origin_idx_ll = origin_idx + 1.0 >= (ilen * 1.0)
35
36 origin_idx = where(origin_idx_l0, 0.0, origin_idx)
37 origin_idx = where(origin_idx_ll, ilen - 2.0, origin_idx)
38 alpha = where(origin_idx_l0, 0.0, alpha)
39 alpha = where(origin_idx_ll, 1.0, alpha)
40
41 alpha0 = 1.0 - alpha
42 idx0 = origin_idx.astype(np.int32)
43 alpha1 = alpha
44 idx1 = (origin_idx + 1.0).astype(np.int32)
45
46 return alpha0, idx0, alpha1, idx1
47
48
49def resize_nearest(inp: HLOTensor, size: Sequence[int]):

Callers 2

resize_linearFunction · 0.85
resize_linear_backwardFunction · 0.85

Calls 6

onesFunction · 0.70
zerosFunction · 0.70
iotaFunction · 0.70
whereFunction · 0.70
floorFunction · 0.50
astypeMethod · 0.45

Tested by

no test coverage detected