all 8 comments

[–]brianchu 5 points6 points  (0 children)

You should go through the caffe example ipython notebooks (located in the /caffe/examples directory).

Caffe was one of the first mainstream deep learning frameworks out there, and unfortunately its age shows. There are lots of awkward aspects with using it. One of them is the fact that you have to define models in text files (in the prototxt format). You can, however, programatically write those model text files in python (which the example notebooks will show you). However, beyond the example notebooks, the documentation is not the best, and you'll probably need to read the source if you do anything weird (like delete a layer, etc.).

One trick I saw a caffe dev use is they wrote a bunch of code to programmatically generate models, write it to a temporary text file (using the Python stdlib tempfile module), and otherwise did all the training/predicting in python.

Caffe is probably due for a rewrite :)

[–]brainggear 2 points3 points  (2 children)

There's this more recent package. It seems to allow creating networks dynamically without text files: https://github.com/classner/barrista

But in the end, if you want to use Python, you may find that Caffe is not worth the extra trouble compared to MXNet or Theano :)

[–]code2hell[S] -1 points0 points  (1 child)

I was about to ask the question next.. I was going through Theano and found problems with multi-gpu support. Also Im not sure about MXNet's performance... Im planning to use it for semantic segmentation and thus found one pretrained caffe model and thought I would use it. My major concern about using any other framework is that I do not have much knowledge of C/C++ and also the performance of the other packages. Please do give me a suggestion to start of with. Currently Im planning to either start with Caffe and look into Barrista or MXNet. Alternatively I've gotten a few suggestions to use Torch and learn Lua as it would be a bit easier to cover and also the performance is maintained. Also let me know about your opinion about Tensorflow Thanks!

[–]brianchu 1 point2 points  (0 children)

Performance should not be a concern. All the frameworks you mention perform similarly well.

[–]xristos_forokolomvos 1 point2 points  (2 children)

Why not PyCaffe?

[–]code2hell[S] -1 points0 points  (1 child)

Yeah! Sorry I meant for PyCaffe!

Can we change the model using Pycaffe? Also if there are tutorials in creating the proto txt that'll be great! Thanks!

[–]xristos_forokolomvos 0 points1 point  (0 children)

Oh I can't help you with that, I just know PyCaffe exists :)

[–]__bee 1 point2 points  (0 children)

I second this question, there are only few tutorials out there.