Hi @vainaijr,
The only difference is when you try to access the convolutions.
Let’s say you want to access the first conv.
In C case you have to do:
c.capsules[0].conv

and in B case you can simply do:
b.capsules[0]

Except from that, running them would give you exactly the same result. A is just a wrapper forwarding x to Conv2d.