NVlabs / tiny-cuda-nn

Lightning fast C++/CUDA neural network framework
Other
3.73k stars 453 forks source link

"DifferentiableObject::backward_backward_input_impl: not implemented error" when calculating second-order derivative #303

Open boynextdoor-cze opened 1 year ago

boynextdoor-cze commented 1 year ago

I used the FullyFusedMLP of tinycudann: y = tcnn.Network(**config)(input), and calculated the Jacobian matrix of y w.r.t. input. The Jacobian matrix is then used as a part of the loss function, so ideally when backpropagating, the parameters of the MLP can be updated based on the second-order derivative. However, tinycudann throws an error as shown in the title, and I checked the source code in tiny-cuda-nn/include/tiny-cuda-nn/object.h and found that this part is not implemented!!! If my understanding is correct, can anybody fix this issue?

moyutianque commented 1 year ago

have you found solutions?

boynextdoor-cze commented 1 year ago

have you found solutions?

Nope. I just implemented an MLP by myself to avoid this problem😅😅 Hope the developer can fix this cuz after all my implementation in Python is so slow

xy-guo commented 1 year ago

see #131 . Hope it helps.