Caffe REST API

310 views
Skip to first unread message

Traun Leyden

unread,
Dec 1, 2014, 11:20:44 AM12/1/14
to caffe...@googlegroups.com

Is anyone else working on a REST API for caffe?  If so, we should talk about collaborating.

I've put up a very early version of what I'm working on here:


A few caffe users have stumbled across it already and reached out to me, so I figured I'd announce it in case anyone else was interested.

If anyone has any feedback on what they'd like the REST API to look like, I'm very open to hearing it.

Evan Shelhamer

unread,
Dec 1, 2014, 2:25:30 PM12/1/14
to Traun Leyden, caffe...@googlegroups.com
Nice! Do post back with progress and if BVLC comes up with any helpful feedback we'll let you know.
--
You received this message because you are subscribed to the Google Groups "Caffe Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caffe-users...@googlegroups.com.
To post to this group, send email to caffe...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/caffe-users/10776998-6887-4086-ba4d-547b087de5d6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Matan

unread,
Dec 3, 2014, 3:01:53 AM12/3/14
to caffe...@googlegroups.com, traun....@gmail.com, shel...@eecs.berkeley.edu
Hi Traun,

Does this effort try to address managing distributed computation (such as mainly enabling strategies for splitting input, tracking progress and merging a final result from Caffe compute nodes), or rather only to be a PaaS for Caffe instances?

Cheers,
Matan

Traun Leyden

unread,
Dec 3, 2014, 10:28:38 AM12/3/14
to Matan, caffe...@googlegroups.com, Evan Shelhamer
Hey Matan,

It's only intended to solve the latter problem -- to be a PAAS for Caffe instances.  For the "grid computing" approach, check out ParameterServer .. there was recently a caffe issue discussing this, but I can't find it.  Issue 876 has some discussion about it.

Here's the itch I am personally trying to scratch: after using Caffe for a while, I started finding it inconvenient to run things on my own laptop.  Often I'd kick off a job and then need to throw my laptop in my backpack and run out the door, and so the job would stop running.  I came to the realization that I needed to run Caffe in the cloud.

After thinking through it, I also realized I wanted to be able to run multiple training jobs in parallel, as well as have the ability to queue up jobs so that I could fire off a bunch of experiments all at once, and check back later after they were all done.  (and the ability to specify how many workers would be servicing the queue, depending on how fast I needed the results).

Going further down the feature creep rabbit hole, I decided that the system should be multi-tenant and allow multiple users, where each user only sees their own data.  This would be useful for a team to share a single cluster in the cloud, so they only have to set it up once and have a single thing to maintain.

Even futher .. to make it easy as possible to use, I wanted to be able to interact it with it via a web interface (and even a mobile app), so I figured I'd start with a REST api and build those on top of it later.

So those are the core problems I'm trying to solve.. 


Matan Safriel

unread,
Dec 3, 2014, 2:20:27 PM12/3/14
to Traun Leyden, caffe...@googlegroups.com, Evan Shelhamer
Hi Traun,

Makes sense. I'd call it ML-ops, same as devops came into being a practice that takes care of streamlining regular developer efficiency. I'd also get a very fast GPU as it would cost less than the time you'd likely spent dealing with any of it. I think one feature you'd want is a dashboard that shows you which tasks have finished or let you subscribe via email..

Thanks for your answer,

Matan

Emmanuel Benazera

unread,
Dec 4, 2014, 5:36:45 AM12/4/14
to caffe...@googlegroups.com


Hi Traun,

Since you are probing: I am working on something similar on my (not so copious) spare time.

This takes the form of an open source machine learning server with support for Caffe among other C++ libraries. 
It is probably a bit more 'integrated' though possibly less scalable than yours in the sense that it is full C++11 with possibly fully custom input/output (JSON, HTML, ...).

Currently it is in no shape to be shared, but hopefully it should make it to github within a couple of months max.

My primary goal is to offer a robust production ready environment for prediction and learning, seconded with a 'continuous integration'-like simple mechanism to keep track of various models, improvements (and failures!)

Not sure how I can help or collaborate, but please let me know. 

At minima, the very simple API I have designed will be made public along with the server.

Em.
Reply all
Reply to author
Forward
0 new messages