Yayan

Joined 17 March 2017
1,454 bytes added ,  27 March 2017
Line 131: Line 131:


Add extra features like the activations class, that can display a layer activations, and the possibility to load pretrainned networks. We could start by defining the AlexNET and VGG16 networks but this could be extended with an exporting/importing tool to unload/load CNNs' architecture and weights in files. Add documented use cases to create a tutorial.
Add extra features like the activations class, that can display a layer activations, and the possibility to load pretrainned networks. We could start by defining the AlexNET and VGG16 networks but this could be extended with an exporting/importing tool to unload/load CNNs' architecture and weights in files. Add documented use cases to create a tutorial.
Testing:
As for testing the layers, I plan to write black-box unity tests previously to their implementation. That is writing small pieces of code that check that given an input to the layer, an expected output is returned by it. This would be useful to check two things: the implementation is correct (we are calling the Tensorflow API properly) and it is also compatible with the Matlab's CNN toolbox because we could make them have the same behaviour.
We are not implementing the core mathematical functions but just interfaces to Tensorflow, which has these functions already implemented. What I would test here is our call to the Tensorflow API. For example, we could test that when creating a convolutional layer with a given input and kernel shape, the output shape is as expected.
Once we have every module implemented and tested, to test the whole unit during Phase 2 I plan to perform gradient checking and also plot the network performance (scored with metrics like accuracy, cost, F1-score...) over its parameters like epoch or training set sizes. This could be done using simple datasets like MNIST.
Since we will be running Tensorflow code under the surface, we could go a step forward and use the Tensorboard utility to check some of these metrics or even ensure with the graph board that the displayed network corresponds to the defined architecture in the m-code. This utility could be enabled for the Octave package.
Documenting:


Through the whole process I plan to keep the code well documented using Doxygen. In case we manage to use the Tensorflow's Python interface, we could look for another way of doing it (like Sphinx).
Through the whole process I plan to keep the code well documented using Doxygen. In case we manage to use the Tensorflow's Python interface, we could look for another way of doing it (like Sphinx).


[[Category: Summer of Code]]
[[Category: Summer of Code]]
41

edits