Open PiggyGaGa opened 5 years ago
I encountered the same error.
@PiggyGaGa Did you have the solution for this?
@danieltan07 , please help us to solve it. Thanks in advance...
May I ask what pytorch version are you using? maybe its because of the version differences
Thanks for your reply. Currently, my pytorch version is 0.4.1 and Python version is 3.5.6.
On Wed, 20 Feb 2019 at 15:53, Daniel Stanley Tan notifications@github.com wrote:
May I ask what pytorch version are you using? maybe its because of the version differences
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/danieltan07/dagmm/issues/6#issuecomment-465464178, or mute the thread https://github.com/notifications/unsubscribe-auth/ALLZeR3fZfcgMfoquSb8voqW0Y7XcaHuks5vPP7sgaJpZM4bA6Uu .
-- Hongmin Wu, Ph.D. Candidate Biomimetic and Intelligent Robotics Lab. (BIRL) School of Electromechanical Engineering Guangdong University of Technology Guangzhou, Guangdong, P.R.China 510006 WeChat: Homing20 Facebook: Hongmin Wu Tel:86+18819498204 E-mail:hongminwu0120@gmail.com hongminwu0120@gmail.com URL: https://hongminwu.github.io https://hongminwu.github.io/ http://www.juanrojas.net/research/
I think the backward() for potrf in 0.4.1 is still not yet implemented.
try replacing this part in model.py line 135
det_cov.append((Cholesky.apply(cov_k.cpu() * (2*np.pi)).diag().prod()).unsqueeze(0))
with
det_cov.append(np.linalg.det(cov_k.data.cpu().numpy()* (2*np.pi)))
the code is already there just uncomment it.
Thanks for your reply. I tried your idea but it didn't work. However, it works by:
If something wrong there, please let me know.
On Wed, 20 Feb 2019 at 17:27, Daniel Stanley Tan notifications@github.com wrote:
I think the potrf for 0.4.1 is still not yet implemented. try replacing this part in model.py line 135 det_cov.append((Cholesky.apply(cov_k.cpu() (2np.pi)).diag().prod()).unsqueeze(0)) with det_cov.append(np.linalg.det(cov_k.data.cpu().numpy() (2np.pi)))
the code is already there just uncomment it.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/danieltan07/dagmm/issues/6#issuecomment-465494785, or mute the thread https://github.com/notifications/unsubscribe-auth/ALLZeYJVXTNsY5lJXtfcGbjKHLqXcIzgks5vPRTxgaJpZM4bA6Uu .
-- Hongmin Wu, Ph.D. Candidate Biomimetic and Intelligent Robotics Lab. (BIRL) School of Electromechanical Engineering Guangdong University of Technology Guangzhou, Guangdong, P.R.China 510006 WeChat: Homing20 Facebook: Hongmin Wu Tel:86+18819498204 E-mail:hongminwu0120@gmail.com hongminwu0120@gmail.com URL: https://hongminwu.github.io https://hongminwu.github.io/ http://www.juanrojas.net/research/
I think the backward() for potrf in 0.4.1 is still not yet implemented. try replacing this part in model.py line 135
det_cov.append((Cholesky.apply(cov_k.cpu() * (2*np.pi)).diag().prod()).unsqueeze(0))
withdet_cov.append(np.linalg.det(cov_k.data.cpu().numpy()* (2*np.pi)))
the code is already there just uncomment it.
The problem is on the version of pytorch, the dagmm of this rep uses pytorch 0.4.0, I have tried 0.4.0, 0.4.1 and the latest version, they report the same backward implementation error, I am confused now, I think who is familiar with difference between different versions of torch, then the root of this problem can be found. I am new to torch, still confused
Oh wait sorry, I didn't change the version in README. The original implementation used the numpy to get the determinant. The cholesky version was done by someone else I think using pytorch 1.0.
Thanks for your reply. I tried your idea but it didn't work. However, it works by: 1. open solver.py file 2. go to line 167 add command line "total_loss = Variable(total_loss, requires_grad = True)" before the line "total_loss.backward()". If something wrong there, please let me know. … On Wed, 20 Feb 2019 at 17:27, Daniel Stanley Tan @.**> wrote: I think the potrf for 0.4.1 is still not yet implemented. try replacing this part in model.py line 135 det_cov.append((Cholesky.apply(cov_k.cpu() (2np.pi)).diag().prod()).unsqueeze(0)) with det_cov.append(np.linalg.det(cov_k.data.cpu().numpy() (2np.pi))) the code is already there just uncomment it. — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#6 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/ALLZeYJVXTNsY5lJXtfcGbjKHLqXcIzgks5vPRTxgaJpZM4bA6Uu . -- Hongmin Wu, Ph.D. Candidate Biomimetic and Intelligent Robotics Lab. (BIRL) School of Electromechanical Engineering Guangdong University of Technology Guangzhou, Guangdong, P.R.China 510006 WeChat: Homing20 Facebook: Hongmin Wu Tel:86+18819498204 E-mail:hongminwu0120@gmail.com hongminwu0120@gmail.com URL: https://hongminwu.github.io https://hongminwu.github.io/ <http://www.juanrojas.net/research/>*
Thank you for your solution, it success, it seems that the variable total_loss has been changed its requires_grad parameter to false in somewhere, but I don't know exactly where it is, I still interested in the root reason of it.
I have a question about the calculation of the matrix determinant:
det_cov.append((Cholesky.apply(cov_k.cpu() * (2*np.pi)).diag().prod()).unsqueeze(0))
and
det_cov.append(np.linalg.det(cov_k.data.cpu().numpy()* (2*np.pi)))
have the same result?
when I run the code, it tells me that
File "/usr/local/lib/python3.5/dist-packages/torch/autograd/function.py", line 180, in backward raise NotImplementedError NotImplementedError