I've been trying to recreate LeNet 1(LeNet 1 architecture is pictured in the top diagram) in python using NumPy. I am unsure of how the forward pass works when there is multiple Input feature maps in a convolutional layer. Referring to the bottom diagram of the expanded view of convolutional layer C3 are the outputs calculated as follows?:

O1 = Cross_correlation(I1 , F1)

O2 = Cross_correlation(I1 , F2)

O3 = Cross_correlation(I1 , F3)

O4 = Cross_correlation(I2 , F4)

O5 = Cross_correlation(I2 , F5)

O6 = Cross_correlation(I2 , F6)

O7 = Cross_correlation(I3 , F7)

O8 = Cross_correlation(I3 , F8)

O9 = Cross_correlation(I3 , F9)

O10 = Cross_correlation(I4 , F10)

O11 = Cross_correlation(I4 , F11)

O12 = Cross_correlation(I4 , F12)

Would appreciate an answer with the notation I have used above so it is easy to understand! Thanks!

Top image is the architecture of LeNet 1 bottom image is a "expanded view of the convolutional layer C3"

  • $\begingroup$ Each filter will have 4 channels and convolute together on the 4 Inputs producing the Outputs i.e. 1,2...Read this $\endgroup$
    – 10xAI
    Jul 11 at 12:45
  • $\begingroup$ Thanks @10xAI this really helped. If I understood correctly I think what I was doing wrong was each filters depth was only 1 when it should have been 4. Each filter has 4 kernels each one corresponding to a different input feature map $\endgroup$
    – Joth
    Jul 12 at 0:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.