Repository: Project-MONAI/MONAI

Issue:
Mention diffusion and bending energy loss demo in the docstrings
**Is your feature request related to a problem? Please describe.**
> Would be great to add the demo to the tutorial repo and mention it in the docstring.

_Originally posted by @KumoLiu in https://github.com/Project-MONAI/MONAI/issues/7272#issuecomment-1840197199_

**Describe the solution you'd like**
Mention the [demo](https://github.com/Project-MONAI/tutorials/blob/main/modules/bending_energy_diffusion_loss_notes.ipynb) in the docstring.

**Describe alternatives you've considered**
/

**Additional context**
/



Discussion:

Resolving patch:
diff --git a/monai/losses/deform.py b/monai/losses/deform.py
--- a/monai/losses/deform.py
+++ b/monai/losses/deform.py
@@ -46,7 +46,10 @@ def spatial_gradient(x: torch.Tensor, dim: int) -> torch.Tensor:
 
 class BendingEnergyLoss(_Loss):
     """
-    Calculate the bending energy based on second-order differentiation of pred using central finite difference.
+    Calculate the bending energy based on second-order differentiation of ``pred`` using central finite difference.
+
+    For more information,
+    see https://github.com/Project-MONAI/tutorials/blob/main/modules/bending_energy_diffusion_loss_notes.ipynb.
 
     Adapted from:
         DeepReg (https://github.com/DeepRegNet/DeepReg)
@@ -75,6 +78,9 @@ def forward(self, pred: torch.Tensor) -> torch.Tensor:
 
         Raises:
             ValueError: When ``self.reduction`` is not one of ["mean", "sum", "none"].
+            ValueError: When ``pred`` is not 3-d, 4-d or 5-d.
+            ValueError: When any spatial dimension of ``pred`` has size less than or equal to 4.
+            ValueError: When the number of channels of ``pred`` does not match the number of spatial dimensions.
 
         """
         if pred.ndim not in [3, 4, 5]:
@@ -84,7 +90,8 @@ def forward(self, pred: torch.Tensor) -> torch.Tensor:
                 raise ValueError(f"All spatial dimensions must be > 4, got spatial dimensions {pred.shape[2:]}")
         if pred.shape[1] != pred.ndim - 2:
             raise ValueError(
-                f"Number of vector components, {pred.shape[1]}, does not match number of spatial dimensions, {pred.ndim-2}"
+                f"Number of vector components, i.e. number of channels of the input DDF, {pred.shape[1]}, "
+                f"does not match number of spatial dimensions, {pred.ndim - 2}"
             )
 
         # first order gradient
@@ -120,12 +127,15 @@ def forward(self, pred: torch.Tensor) -> torch.Tensor:
 
 class DiffusionLoss(_Loss):
     """
-    Calculate the diffusion based on first-order differentiation of pred using central finite difference.
+    Calculate the diffusion based on first-order differentiation of ``pred`` using central finite difference.
     For the original paper, please refer to
     VoxelMorph: A Learning Framework for Deformable Medical Image Registration,
     Guha Balakrishnan, Amy Zhao, Mert R. Sabuncu, John Guttag, Adrian V. Dalca
     IEEE TMI: Transactions on Medical Imaging. 2019. eprint arXiv:1809.05231.
 
+    For more information,
+    see https://github.com/Project-MONAI/tutorials/blob/main/modules/bending_energy_diffusion_loss_notes.ipynb.
+
     Adapted from:
         VoxelMorph (https://github.com/voxelmorph/voxelmorph)
     """


Test patch: