From abcd17e6797071c021a8ef795104304763e96602 Mon Sep 17 00:00:00 2001 From: lucasdelimanogueira Date: Fri, 17 May 2024 13:49:32 -0300 Subject: [PATCH] fix test autograd sub broadcasted --- norch/__pycache__/tensor.cpython-38.pyc | Bin 15409 -> 15409 bytes .../__pycache__/functions.cpython-38.pyc | Bin 7881 -> 7881 bytes norch/autograd/functions.py | 1 + tests/test_autograd.py | 8 ++++++++ 4 files changed, 9 insertions(+) diff --git a/norch/__pycache__/tensor.cpython-38.pyc b/norch/__pycache__/tensor.cpython-38.pyc index 939d3712e44c90682fa532429141b3c9dc46906e..72d3bebe7c6e0b2310c3fc5635d02abacb3002da 100644 GIT binary patch delta 763 zcmaLV&rcIk5C`y1DaCYCA(W;?0$tPA*t%+$!ip`5lt#nBs1biHDzvsJ{s?s~rhp16 z+%%d@^q|HA@nT|3Hfz)n6L0zY0_XuvAkX*J zPAc+CRck$i4OQ^mW5p4doxzTW?${{eli)Ovtw`Fi92fKxtKrQY?b_t6U&05vmZ>B^ zsxfl)e^*c9YUMmCso<y z7qvcR26a?W@A9qoivE1?N;1h$wiWAnPV4q|6w*>f<=Q_$U1+3d#dEOJ zcN*ym-_s*}YUhUygUA>Fa>^1p>KyONY!q2znT&WQk21!*fm1s`7VH5zun)+WVj`LV z=fDMU5ny1J1*%{g)W9s51J}U~Fb@{MO>hg`cCB~0KCP=*Q)><0cXsb1GO>0`w z`lI+;6b3z1@ld=7A}lK^MeydI;9(EqU2js*lkWGWB6u)|5A$B$%$psaQ8Q}p10Ijt zVgID_hWm?5mibic^h@;C2t%RxIyKLots2tR8Z zmyRQ>Cv^CpIHi893;f=nY_eSAlhc~TKm9W_$mPIWX##&1O||_w`34b}Krd(l1%9Y> z(n)@$sI8~4q1e1|=@GR5x6+s)8xFJid1U7M~t6QpH!h5@xX;OSt zV{rC=SD(ezav7Bra7HBkPzp}@Z@)g)lAT-%9i{?*2pqo-V@okHf$quvB564CEDvkIewD}nv2msq7tvfswDd0{N`1At;S^Ul~7FGh=j@ IKV^>n26O4QV*mgE diff --git a/norch/autograd/__pycache__/functions.cpython-38.pyc b/norch/autograd/__pycache__/functions.cpython-38.pyc index 53f8f0f128e7c447aba89ed800191f02ca1cd362..a7d3c51799e12ba048365fea0230b6d120e52637 100644 GIT binary patch delta 346 zcmWNJODKZ@0LT5Y+3RDQZ`-$r_q(__aGDy8yf)EFNiOqhH_1v4CeJu%e-SBpF25p6Dr8Hn)|M&CiNlzp}>#Q0_Fz!@9t5!~>@zJ^-{94=h* Z!V$qeeFbxP;9G$U3EB!bVBuw+24oFXJ&uMvK0<4TT7I^r ztsJ(ZR%&tJCI?psXBUU@J%^{~^km&xx8M~7O`c3^xN~ynPS`3?VzE;4`M9hW`Kp>> zt-=eDA;nt0a$4k@L1dLsPmgjG)jU%M;gD^jOIxFG$eSwm6{g{$Ms-y2oobDF=i5sCD7-FWV7kw-#PQjOWDQ*D# z{4MFh1UvLG%<)IRg#|7fB+N2n$RM0pFC7O~`6UiuiOpp<*kizG&f zj=533iBlR(9vpGRbcu83OnzL-HZoM<#2GItVz}n8`4CZlo4awvCQAfKepCP(X?krdc;LHDLW*YlK8%dp&HsaKa;N|R diff --git a/norch/autograd/functions.py b/norch/autograd/functions.py index d0aed64..30e452f 100644 --- a/norch/autograd/functions.py +++ b/norch/autograd/functions.py @@ -15,6 +15,7 @@ class AddBroadcastedBackward: x, y = self.input grad_x = self._reshape_gradient(gradient, x.shape) grad_y = self._reshape_gradient(gradient, y.shape) + return [grad_x, grad_y] def _reshape_gradient(self, gradient, shape): diff --git a/tests/test_autograd.py b/tests/test_autograd.py index 8cd105e..1db0569 100644 --- a/tests/test_autograd.py +++ b/tests/test_autograd.py @@ -80,12 +80,17 @@ class TestTensorAutograd(unittest.TestCase): self.assertTrue(utils.compare_torch(norch_tensor2_grad, torch_tensor2_grad)) ## reversed order broadcasting + norch_tensor1 = norch.Tensor([[[1., 2, 3], [4, 5, 6]]], requires_grad=True).to(self.device) # Shape (1, 2, 3) + norch_tensor2 = norch.Tensor([1.5, -1, 0], requires_grad=True).to(self.device) # Shape (3) norch_result = (norch_tensor2 + norch_tensor1).sum() norch_result.backward() norch_tensor1_grad = utils.to_torch(norch_tensor1.grad).to(self.device) norch_tensor2_grad = utils.to_torch(norch_tensor2.grad).to(self.device) + torch_tensor1 = torch.tensor([[[1., 2, 3], [4, 5, 6]]], requires_grad=True).to(self.device) # Shape (1, 2, 3) + torch_tensor2 = torch.tensor([1.5, -1, 0], requires_grad=True).to(self.device) # Shape (3) + torch_result = (torch_tensor2 + torch_tensor1).sum() torch_result.backward() torch_tensor1_grad = torch_tensor1.grad @@ -137,6 +142,8 @@ class TestTensorAutograd(unittest.TestCase): self.assertTrue(utils.compare_torch(norch_tensor2_grad, torch_tensor2_grad)) # reversed order broadcasting + norch_tensor1 = norch.Tensor([[[1., 2, 3], [4, 5, 6]]], requires_grad=True).to(self.device) # Shape (1, 2, 3) + norch_tensor2 = norch.Tensor([1.5, -1, 0], requires_grad=True).to(self.device) # Shape (3) norch_result = (norch_tensor2 - norch_tensor1).sum() norch_result.backward() @@ -145,6 +152,7 @@ class TestTensorAutograd(unittest.TestCase): torch_tensor1 = torch.tensor([[[1., 2, 3], [4, 5, 6]]], requires_grad=True).to(self.device) # Shape (1, 2, 3) torch_tensor2 = torch.tensor([1.5, -1, 0], requires_grad=True).to(self.device) # Shape (3) + torch_result = (torch_tensor2 - torch_tensor1).sum() torch_result.backward() torch_tensor1_grad = torch_tensor1.grad