# Tool for designing CNN architectures

I am currently building a (simple sequential) fully convolutional network for an object recognition task.

Designing the architecture essentially amounts to choosing kernel size, stride and unit number for each layer. While doing this, I have to keep track of several properties of my layers:

• parameter count
• field of view of each kernel, wrt to the input/data
• a margin in the last layer that I need to account for when creating the label images

I've written a small script that computes these quantities for different CNN configurations. It's not very complicated, but…

I'm under the impression that everyone using CNNs has to do this, so there should be a (graphical) tool for this. It could also be used to draw the fancy architecture diagrams. Because it works on the same input data.

Is there such a tool? How do you compute these quantities for your models?

• Most of the big name libraries have some functions built in to explore the models. For instance TensorFlow has TensorBoard. "How do you draft your CNN architectures?" is a tricky question for a Stack Exchange site, because all answers are equally good (so question may get closed for being opinion based). Perhaps focus on a problem that you find hard to solve with your current script, and ask how that part is done . . . – Neil Slater Nov 24 '17 at 8:25
• @NeilSlater I'll rephrase the question. It sounds broader than it's meant to. And now that you mention it, Keras also has .summary() which prints some statistics. Though it might not include everything I need. – ziggystar Nov 24 '17 at 8:26