0
$\begingroup$

I want to try models to classify the MNIST dataset. now, the parameters I can play with are:

  • Network architecture: Number of convolutional layers, Number of kernels (filters) for each convolutional layer, Size of each kernel on each layer, Number of hidden layers (fully connected), Number of units for each hidden layer, Usage of layers (like BatchNormalization and Dropout.), Usage of max pooling (or maybe other pooling strategies).
  • Training hyperparameters: Learning rate, Optimizer (SGD with momentum, adam, etc), Number of epochs.

What is the best known network where these are the parameters I can play with? Thanks!

$\endgroup$
0
1
$\begingroup$

This could by any neural network, doesn't even have to be CNN. MNIST is a small, toy dataset, you do not need to use neural network to get decent results. If all you want to do is to play around, just do it, try different combinations of those building blocks & parameters and see what happens.

$\endgroup$
0
$\begingroup$

A simple ANN would do the job, to be honest, and most of the data loaders you'll end up with let you use the MNIST dataset in an array-like fashion rather than treating it as an image. The reason being the small dimensions.

But if you actually want to learn the internal working of CNNs, I would suggest going with a data set that has a larger image dimension, as this was one of the reasons why CNNs were needed in the first place. Now treating the data like an array becomes impossible from a memory point of view.

To play around, just go with any simple CNN, Resnet-50 from the PyTorch model collection may be a good start. Keep in mind, the deeper the network, the more overfitting on simpler data.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.