GSoC 2017 - First Evaluation
The summer is passing by quickly and its almost time for the first evaluation. Following the first two weeks which mainly involved fixing and completing old features, the third week began with writing unit tests for backend modules. Until now the project had no unit tests and covering all the previous backend code was a mammoth task. The project supports multiple deep learning frameworks and has different backends to handle import
and export
from each of them. I started with writing unit tests for the import
backend of the Caffe
framework but could not move on to the export
portion as details defining what would mean success
for the test were not finalized yet.
So, I moved on to adding support for Python
layer in the Caffe framework, this layer allows users to implement any custom logic through a Python
wrapper and therefore required special attention as it can have an arbitrary number of parameters. So when parsing layers of this type I had to add functionality to dynamically add fields depending on the number of parameters, allowing users to edit each parameter as they would for a normal layer. By this time the details for the export
functionality were finalized and I started working on them followed by integrating Coveralls
to show code coverage as its developed.
We now wanted to add support for another deep learning framework and were trying to finalize whether to start with Tensorflow
, PyTorch
or Keras
. We started with Keras
over the other two, as it follows the layer
model similar to Caffe
while Tensorflow
and PyTorch
look at each step as an op
and it was therefore easier to integrate Keras
support into our existing framework. So I started with and completed support for importing any Keras model json
into Fabrik.
So at this moment, Fabrik supports imports from Caffe, Keras and Tensorflow(few layers) and export to Caffe and Tensorflow. In the coming weeks I’ll be working on adding the export
functionality for Keras and then we’ll probably start with another framework such as Tensorflow.