5 ms·
Hey guys - Yangqing here, worked on Caffe and Caffe2 over the years, super excited to have continuous contribution to the OSS community. I am more than happy to
by jiayq84 10y ago
Hey guys - Yangqing here, worked on Caffe and Caffe2 over the years, super excited to have continuous contribution to the OSS community. I am more than happy to answer questions if you are curious.
- drej 10y agoA super inexperienced observer here, so just a very basic question - how does Caffe(2) differ from TF/Theano/Torch etc.? What are the obvious upsides and potential downsides? A tweet-sized answer will do, I'm just curious as to what the high level differences are. Cheers and congrats on the release!
- smhx 10y agohttp://caffe2.ai/docs/caffe-migration.html#null__how-is-caffe2-different-from-pytorch http://caffe2.ai/docs/caffe-migration.html#null__how-is-caff... > Caffe2 is built to excel at mobile and at large scale deployments. While it is new in Caffe2 to support multi-GPU, bringing Torch and Caffe2 together with the same level of GPU support, Caffe2 is built to excel at utilizing both multiple GPUs on a single-host and multiple hosts with GPUs. PyTorch is great for research, experimentation and trying out exotic neural networks, while Caffe2 is headed towards supporting more industrial-strength applications with a heavy focus on mobile. This is not to say that PyTorch doesn’t do mobile or doesn’t scale or that you can’t use Caffe2 with some awesome new paradigm of neural network, we’re just highlighting some of the current characteristics and directions for these two projects. We plan to have plenty of interoperability and methods of converting back and forth so you can experience the best of both worlds.
- mtw 10y agodoes it mean PyTorch or Tensorflow are better for research, experimentation and Caffe2 was more designed for production? Or it actually means Caffe2 was designed for both research and production
- jiayq84 10y agoPyTorch definitely makes experimentation much better. For example, if you want to train some system that is highly dynamic (reinforcement learning, for example), you might want to use a real scripting language which is Python, and PyTorch makes that really sweet. Sometimes the line gets a bit blurred - for research that are focusing on relatively fixed patterns, such as Mask RCNN, both PyTorch and caffe2 are working great. In fact, Mask RCNN is trained in Caffe2, and that also makes things much easy when we put it on mobile - what our CTO Mike Schroepfer showed in his keynote is a Mask RCNN model trained and then deployed onto mobile with Caffe2.
- binaryzeitgeist 10y agoWhen are you planning to release the Mask-RCNN code? I'm trying to implement the RoIAlign layer in Tensorflow and I've a few doubts and having the author's code would definitely help in implementing it.
- anand_MSFT 10y agoWe launched a Data Science VM supporting caffe2 - https://blogs.technet.microsoft.com/machinelearning/2017/04/18/deep-learning-with-caffe2-on-the-azure-data-science-virtual-machine/ https://blogs.technet.microsoft.com/machinelearning/2017/04/...
- danielmorozoff 10y agoWould also love some information on performance. How does Caffe2 stack up against TF1.0+? When is MKL support planned for ?
- jiayq84 10y agoMKL is going to be merged very soon - a full MKL pull request is here if you'd like to track it: https://github.com/caffe2/caffe2/pull/270 https://github.com/caffe2/caffe2/pull/270 And thanks so much for the awesome work from Intel!
- jiayq84 10y agoRE the performance - many frameworks nowadays enjoy the high-performance libraries such as CuDNN for optimized runtime on different platforms. For example, we've been collaborating with NVidia on optimized distributed training on GPUs, and you can check out more details here: https://blogs.nvidia.com/blog/2017/04/18/caffe2/ https://blogs.nvidia.com/blog/2017/04/18/caffe2/
- danielmorozoff 10y agoThanks for the link. Are there any public specifics comparing distributed tf to Caffe2's distributed implementation?
- jiayq84 10y agoI am not aware of that right now. Internally we measure the performance by looking at the theoretical peak possible (like the scaling efficiency when you use distributed training). C2 has been doing pretty well; if you find performance degradations, send an issue to us and we are usually very good to figure out the perf.
- IshKebab 10y agoHow difficult is it to set up custom recurrent networks? The only system I've ever seen that handles this well is CNTK - you can just say `x = PreviousValue(y)`. I've tried to work out how to do similar things in Torch and Tensorflow but all they really offer is pre-packaged layers like LSTM. If you want to make your own it's difficult, undocumented and not at all ergonomic. How does Caffe2 compare?
- dzhulgakov 10y agoThe recurrent network work is under way - we are revisiting the designs to consciously balance between performance and API niceness. We'll share more tech details in the upcoming days. Right now, this is an example RNN: https://github.com/caffe2/caffe2/blob/master/caffe2/python/examples/seq2seq_util.py https://github.com/caffe2/caffe2/blob/master/caffe2/python/e... We use it for machine translation so the perf is nice. If you have design feedbacks please let us know - we'll be really grateful.
- iraphael 10y agoI know one of the biggest struggles of training RNNs in TensorFlow, for instance, is the fact that the graph is static. Other frameworks, like PyTorch, have dynamic graphs. Will Caffe2 support dynamic graphs (perhaps down the line)? What is your reasoning behind whichever decision?
- spangry 10y agoI am a complete machine learning noob, so this could just be my lack of skill. Having looked at most of the popular ML frameworks, none of them seem to provide an easy, functional way to implement a custom 'neuron'. That is: function (someinput): output = do_stuff return output Which then gets passed on to the next layer. Again, it's quite possible I've just missed something, or there is some inherent ML limitation that makes this impossible. But if such a thing is possible, it would be a rather awesome feature from my POV.
- Q6T46nT668w6i3m 10y ago
- cs702 10y agoYangqing, thank you. This is awesome. Quick question: why did you develop and release this as a completely separate codebase from the original Caffe you created at UC Berkeley?
- jiayq84 10y agoAh, it is because we do not want to create too much chaos for people to migrate between codebases. Evan and I had played both scenarios and decided that it is cleaner to put the code in separate codebases. A lot of the runtime code are shared, and we are working on the migration tools - such as model converters - that helps migration. If there are bugs in these tools, shoot us an issue on github and we'll fix it.
- cs702 10y agoMakes sense. Will do. Thank you for the quick answer!
- nzjrs 10y agoWill there be any project management or stewardship of this project,l? unlike caffe1 where every paper, project, or hypothesis yielded a mutually incompatible fork on github?
- laughingman2 10y agoWhy do you people at Facebook use a patents clause and destroy integrity of open source license of BSD? Better create a proprietary license which allow you to protect your predatory patent claims instead of acting benevolent and releasing with this kind of corporate malarkey.
- mto 9y agoGreat work. I would like to know "how beta" the Windows version is. Is there a small library for inference that we can use integrated in an application? I am currently exporting models from an existing Theano system running on an a Linux server. I'm currently running inference using tiny-dnn and an alternative direct implementation using Eigen (which is much faster) but in the long run it would be nice to have stuff like quantization and GPU available. Thanks