Coming October 25: PeerSpot Awards will be announced! Learn more

Caffe OverviewUNIXBusinessApplication

Caffe is #7 ranked solution in top AI Development Platforms. PeerSpot users give Caffe an average rating of 7.0 out of 10. Caffe is most commonly compared to PyTorch: Caffe vs PyTorch.
Buyer's Guide

Download the AI Development Platforms Buyer's Guide including reviews and more. Updated: September 2022

What is Caffe?

Caffe is a deep learning framework made with expression, speed, and modularity in mind. It is developed by Berkeley AI Research (BAIR) and by community contributors.

Caffe Video

Caffe Reviews

Filter by:
Filter Reviews
Filter Unavailable
Company Size
Filter Unavailable
Job Level
Filter Unavailable
Filter Unavailable
Filter Unavailable
Order by:
  • Date
  • Highest Rating
  • Lowest Rating
  • Review Length
Showingreviews based on the current filters. Reset all filters
Machine/Deep Learning Engineer at UpWork Freelancer
Real User
Top 10
Speeds up the development process but needs to evolve more to stay relevant
Pros and Cons
  • "Caffe has helped our company become up-to-date in the market and has helped us speed up the development process of our projects."
  • "The concept of Caffe is a little bit complex because it was developed and based in C++. They need to make it easier for a new developer, data scientist, or a new machine or deep learning engineer to understand it."

What is our primary use case?

We used this solution to make a face recognition system that uses gender and age prediction. We have to recognize and register faces for security reasons. Since we don't know all the people that are passing by our cameras, we track them and assign a unique ID for each face. We keep tracking them as long as they are visible within the camera field. After that, we predict the age and gender of those people, and then we send them to our database system to produce statistics. Finally, there is a second-team that analyses the statistics.

We also use it for transfer learning, which is a style transfer. We have two kinds of input images. Let's say the first image is of a person, and the second image is a style. We want to transfer information from the first image to the second. This is called image-to-image translation. First, we collect the data, then we clean it. After that, we have the model and we make our inference.

The third use case for us is based on image retrieval. We have a full database — it's a huge database. We have used Spark and HDFS — big data tools; it's a distributed database. We have to extract features for each image so we needed to develop a model to retrieve the images. Let's say the user has input images, and they have a web interface like Google search — when you upload an image, it will retrieve the closest one to you. We proceed with feature extraction and a calculation for each image. We save them and after that, we train a model to retrieve the closest images to the stored one. We use GitHub to upload these input images and after that, our system retrieves and outputs the 10 closest images to them.

How has it helped my organization?

Since its development, Caffe has been one of the most famous solutions. TensorFlow comes in second place — it's still a little underdeveloped; it doesn't support all the features. Caffe has helped our company become up-to-date in the market and has helped us speed up the development process of our projects. 

For people that are comfortable with C++, they will not experience problems like they would with TensorFlow and other libraries. Using C++, you can develop your mobile and IOS models. In short, as we are very comfortable with C++, Caffe has helped our company speed up the development process.

Python is easy, but for people coming from C++, it's not easy to learn. If you're familiar with C++, then implementation, development, and configuration will be much faster with Caffe. 

What is most valuable?

Caffe is up to date. For example, in the case of TensorFlow, there are some versions of GPU and other operations that are not supported yet. For deep learning operations, we often have to customize or develop them by ourselves, which takes a lot of time. Other libraries are mostly in Python, but Caffe is based on C++ and touches the low-level of the system. In short, relating to optimization and time, from my point of view, Caffe is more suitable.

What needs improvement?

In the future, they should expand text processing, for a recommendation system, or to support some other models as well — that would be great. The concept of Caffe is a little bit complex because it was developed and based in C++. They need to make it easier for a new developer, data scientist, or a new machine or deep learning engineer to understand it. You can't work with metrics and vectors as Python does.

Python is a vector-oriented language, but Caffe is not. When you deal with memory in C++, you have to allocate the data you will use in memory. You have to manage everything in C++. Conversely, in Python, you don't need to do that since everything is abstract and done by Python itself. It depends on every use case or your requirement goals. Some clients will require you to use Caffe because maybe their projects are old and they want to continue with Caffe. Others are comfortable with their current situation or they are afraid of migrating to another library. From my point of view, they need to make it easier for a new developer to use it. They should incorporate Python API to make it richer, overall.

Buyer's Guide
AI Development Platforms
September 2022
Find out what your peers are saying about Caffe, TensorFlow, PyTorch and others in AI Development Platforms. Updated: September 2022.
635,987 professionals have used our research since 2012.

What do I think about the stability of the solution?

Caffe as a solution is well optimized because it uses C++ — it's stable. When it comes to making models, Caffe is very complex compared to other libraries, but stability-wise and optimization-wise, it's great.

What do I think about the scalability of the solution?

It's not that scalable. TensorFlow on YARN is more scalable. YARN is used as a distribution system. From my experience, you have to go with TensorFlow on YARN for scalability. YARN can manage everything for you, including the memory, the distribution, and the containers as well. Personally, I don't recommend Caffe if you're looking for a scalable system. You can deploy TensorFlow in your infrastructure or on your cluster, then, yarn can manage it and make it scalable to optimize the memory, the container, etc. Overall, I'd recommend TensorFlow on Yarn for this matter.

Which solution did I use previously and why did I switch?

Recently, TensorFlow and PyTorch merged together — PyTorch in TensorFlow or TensorFlow in PyTorch. If you look at the market, some of the greatest companies are migrating from TensorFlow to PyTorch.

PyTorch is better at debugging than TensorFlow. There are a lot of tools in TensorFlow that are not present in PyTorch. Caffe offers different tools altogether.

Caffe is based on something we call the Blob. PyTorch and TensorFlow are based on tensor, which is multilinear annotation for a higher dimension. If there is a new data scientist or a new user who wants to learn or practice deep learning, If he starts with Caffe, it's going to be very complicated for him since he has to understand what is going on in the background in terms of memory, the processor, the GPU. TensorFlow and PyTorch are abstract — we just have to declare a tensor. You just have to declare your model, your layers, and so on. The biggest differences have to do with the User Interfaces.

You can run a TensorFlow model or a PyTorch model on a distributed solution or infrastructure. Also, the community of TensorFlow and PyTorch, it's very rich. The number of people that use Caffe is not really comparable to TensorFlow and PyTorch.

How was the initial setup?

The initial setup is complex, even in Python. We had to install the version that we were using manually and we had a bug that caused some issues. There is a lot of work involved in the initial setup, even when setting up a GPU. They need to make it easy for the developer to set it up, like TensorFlow, where it's just a single pipeline. They should make it easier for a new developer by including everything in a single package that doesn't require a lot of installation instructions.

It took me three days just to complete the installation process.

If you need post-deployment, it will be related to programming configuration or modifying code for a new requirement. 

What about the implementation team?

It really depends on the requirement. As of now, we don't have a strict plan in place.

What other advice do I have?

On a scale from one to ten, I would give Caffe a rating of seven.

If you're going to use this solution, then you have to learn C++. You need to understand how C++ works so that you'll have a better understanding of how the memory is handled and the resources are handled in C++. After that, you have to start learning Caffe step-by-step. Caffe is a new concept, especially the Blob. Caffe is based on Blob so you need to understand what that is and how it's implemented because, with Caffe, you have to make a transformation to fit that.

You need to understand all of this before you start. After that, you have to look at open-source solutions and their code and understand what they are doing and why they are doing it. In order to implement your own solution or to be comfortable using Caffe, you need to be able to read the code, the documentation, and everything before you begin. Someone with no background in Caffe, for example, someone who migrates from TensorFlow or PyTorch, that person will not understand anything because they're completely different. If you want to implement a deep learning model in TensorFlow, it can be done in roughly 10 lines, but with Caffe, it's going to be a completely new project. For these reasons, you need to understand C++ and the concept of Caffe in general.

Every day, a ton of papers and articles are published. They are not using Caffe, they are using either TensorFlow or PyTorch. To be honest, I recommend that people start with TensorFlow and PyTorch because I see them as the future; there is something great you can do with them — especially since they support mobile device implementation. If you are working with Caffe, you have to convert your model from Caffe to TensorFlow or PyTorch in order for it to be suitable for mobile applications.

Which deployment model are you using for this solution?

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user