I want to implement a convolutional neural network using the tiny-cnn implmentation for c++. I have downloaded it and tried the MNIST example in there, but I'm having trouble implementing it for my own use.
My input is a gray image, just line the MNIST. But unlike the MNIST problem, in which the output of the network is 10 numbers (probability for each digit), I want my output to be a gray level image in the size of the original image (I want to use it for detection certain objects in the image). I already have the desired output images (so I can use them to train the network), but I'm not sure how to construct the network. For example, the MNIST network in the git example was contructed like this:
nn << convolutional_layer<tan_h>(32, 32, 5, 1, 6) // 32x32 in, 5x5 kernel, 1-6 fmaps conv << average_pooling_layer<tan_h>(28, 28, 6, 2) // 28x28 in, 6 fmaps, 2x2 subsampling << convolutional_layer<tan_h>(14, 14, 5, 6, 16, connection_table(connection, 6, 16)) // with connection-table << average_pooling_layer<tan_h>(10, 10, 16, 2) << convolutional_layer<tan_h>(5, 5, 5, 16, 120) << fully_connected_layer<tan_h>(120, 10);
What layers should I have in my network? How should I know? Does someone have an example for what I am looking for?