Difference between upsample and convtranspose

Could someone please explain the difference of upsample layer and convtranspose layer to me?

I’m trying to implement a UNet model. I’ve seen both of the two layers in different UNet implementation. It seems they are very similar layers.

There are learnable parameters in nn.ConvTranspose2d while nn.Upsample not.

It’s something like the difference between nn.Conv2d and nn.AvgPool2d.


Thanks for the answer, Yun.