And how you verify that your numpy implementation is correct.
If the network is totally novel, you can verify the expected shape after each node. Then, feed the network a constant, and check the output after each node. You can also fix the network parameter, start with a small network, check each section of the network on its own…etc.