openvino
openvino copied to clipboard
【Hackathon 6th No.43】add paddle tril_triu
Details:
add paddle tril and triu
Reference
Code: https://github.com/PaddlePaddle/Paddle/blob/release/2.6/python/paddle/tensor/creation.py#L1431 Support data type: int32, int64, float32, float64, float16, complex64, complex128 (openvino do not support float64, float16, complex64 complex128)
Python simulation code
import paddle
a = paddle.randn((3, 4))
def func(x, diagonal=0, mode='triu'):
h, w = x.shape
horizontal_range = paddle.arange(0, w)
horizontal_range = paddle.unsqueeze(horizontal_range, 0)
vertical_range = paddle.arange(0, h)
vertical_range = paddle.unsqueeze(vertical_range, 1)
if diagonal != 0:
vertical_range += diagonal
if mode == 'triu':
mask = horizontal_range >= vertical_range
else:
mask = horizontal_range <= vertical_range
print(mask)
return paddle.where(mask, x, paddle.zeros_like(x))
def tril(x, diagonal=0):
return func(x, diagonal, 'tril')
def triu(x, diagonal=0):
return func(x, diagonal, 'triu')
b = paddle.tril(a, -1)
c = tril(a, -1)
print(b)
print(c)
print((b==c).mean())
Test
waiting for:
- https://github.com/openvinotoolkit/openvino/pull/23010
@meiyang-intel Could you please take a look?
@meiyang-intel @ilya-lavrenov Could you please take a look?
@ilya-lavrenov , could you help build jenkins?
build_jenkins