Build your First Multi-Label Image Classification Model in Python

Pulkit Sharma 18 Feb, 2024 • 11 min read

Introduction

Are you working with image data? There are so many things we can do using computer vision algorithms:

  • Object detection
  • Image segmentation
  • Image translation
  • Object tracking (in real-time), and a whole lot more.

In this article, we will talk about multi-label image classification, utilizing the power of deep learning and advanced methodologies. Instead of relying on conventional toy datasets, we draw inspiration from real-world scenarios, particularly movie and TV series posters, which inherently contain diverse visual elements representing various genres.

But how do we navigate this complex task effectively? Fear not; we will dig deep into the intricacies of building a multi-label image classification model, leveraging cutting-edge technologies such as convolutional neural networks (CNNs) and transfer learning. Along the way, we harness the capabilities of popular frameworks like TensorFlow, PyTorch, and scikit-learn, using their APIs to streamline development and implementation.

By leveraging transfer learning and pre-trained models, we expedite the training process and enhance the efficiency of our classifiers. Additionally, we explore the resources available on platforms like Kaggle, tapping into rich datasets and collaborative communities to fuel our experiments.

Whether you’re a seasoned practitioner or a curious enthusiast, join us as we unravel the mysteries of multi-label image classification, equipped with tensors, Kaggle datasets, and the latest advancements in deep learning.

Excited? Good, let’s dive in!

Multi-Label Image Classification Model in Python

What is Multi-Label Image Classification?

Let’s understand the concept of multi-label image classification with an intuitive example. Check out the below image:

Multi-Label Image Classification Model in Python

The object in image 1 is a car. That was a no-brainer. However, there is no car in image 2 – only a group of buildings. Can you see where we are going with this? We have classified the images into two classes, i.e., car and non-car.

When we have only two classes in which the images can be classified, this is known as a binary image classification problem.

Let’s look at one more image:

multi label image classification (scenary)

How many objects did you identify? There are too many – a house, a pond with a fountain, trees, rocks, etc. So,

When we can classify an image into more than one class (as in the image above), it is known as a multi-label image classification problem.

Here’s a catch: most of us confuse multi-label and multi-class image classification. Even I was bamboozled the first time I came across these terms. Now that I understand the two topics better let me clarify the difference for you.

How is Multi-Label Image Classification different from Multi-Class Image Classification?

Suppose we are given images of animals to be classified into corresponding categories. For ease of understanding, let’s assume there are a total of 4 categories (cat, dog, rabbit, and parrot) in which a given image can be classified. Now, there can be two scenarios:

  1. Each image contains only a single object (either of the above 4 categories), so it can only be classified into one of the 4 categories.
  2. The image might contain more than one object (from the above 4 categories), and hence, the image will belong to more than one category.

Let’s understand each scenario through examples, starting with the first one:

multi class image classification

Here, we have images that contain only a single object. The keen-eyed among you will have noticed 4 different types of objects (animals) in this collection.

Each image here can only be classified as a cat, dog, parrot, or rabbit. There are no instances where a single image will belong to more than one category.

1. When there are more than two categories in which the images can be classified.

2. An image does not belong to more than one category.

If both of the above conditions are satisfied, it is referred to as a multi-class image classification problem.

Now, let’s consider the second scenario – check out the below images:

multi label image classification
  • First image (top left) contains a dog and a cat.
  • Second image (top right) contains a dog, a cat, and a parrot.
  • Third image (bottom left) contains a rabbit and a parrot.
  • The last image (bottom right) contains a dog and a parrot.

These are all labels of the given images. Each image here belongs to more than one class; hence, it is a multi-label image classification problem.

These two scenarios should help you understand the difference between multi-class and multi-label image classification. Connect with me in the comments section below this article if you need any further clarification.

Before we jump into the next section, I recommend going through this article – Build your First Image Classification Model in just 10 Minutes! It will help you understand how to solve a multi-class image classification problem.

Steps to Build Your Multi-Label Image Classification Model

Now that we have an intuition about multi-label image classification let’s dive into the steps you should follow to solve such a problem.

The first step is to get our data in a structured format. This applied to both binary and multi-class image classification.

You should have a folder containing all the images you want to train your model. For training this model, we also require the true labels of images. So, you should also have a .csv file that contains the names of all the training images and their corresponding true labels.

We will learn how to create this .csv file later in this article. For now, remember that the data should be in a particular format. Once the data is ready, we can divide the further steps as follows:

Load and pre-process the data

First, load all the images and then pre-process them per your project’s requirement. We create a validation set to check how our model will perform on unseen data (test data). We train our model on the training set and validate it using the validation set (standard machine learning practice).

Define the model’s architecture

The next step is to define the architecture of the model. This includes deciding the number of hidden layers, neurons in each layer, the activation function, etc.

Train the model

Time to train our model on the training set! We pass the training images and their corresponding true labels to train the model. We also pass the validation images here to help us validate how well the model performs on unseen data.

Make predictions

Finally, we use the trained model to get predictions on new images.

Understanding the Multi-Label Image Classification Model Architecture

The pre-processing steps for a multi-label image classification task will be similar to that of a multi-class problem. The key difference is in the step where we define the model architecture.

We use a softmax activation function in the output layer for a multi-class image classification model. We want to maximize the probability for each image for a single class. As the probability of one class increases, the probability of the other class decreases. So, we can say that the probability of each class is dependent on the other classes.

But in the case of multi-label image classification, we can have more than one label for a single image. We want the probabilities to be independent of each other. Using the softmax activation function will not be appropriate. Instead, we can use the sigmoid activation function. This will predict the probability for each class independently. It will internally create n models (n here is the total number of classes), one for each class, and predict the probability for each class.

The sigmoid activation function will turn the multi-label problem into an n-binary classification problem. So, for each image, we will get probabilities defining whether the image belongs to class 1 or not, and so on. Since we have converted it into a n-binary classification problem, we will use the binary_crossentropy loss. We aim to minimize this loss to improve the performance of the model.

We must make This major change while defining the model architecture for solving a multi-label image classification problem. The training part will be similar to that of a multi-class problem. We will pass the training images, their corresponding true labels, and the validation set to validate our model’s performance.

Finally, we will take a new image and use the trained model to predict the labels for this image. With me so far?

Case Study: Solving a Multi-Label Image Classification Problem

Congratulations on making it this far! Your reward – solving an awesome multi-label image classification problem in Python. That’s right – time to power up your favorite Python IDE!

Let’s set up the problem statement. We aim to predict the genre of a movie using just its poster image. Can you guess why it is a multi-label image classification problem? Think about it for a moment before you look below.

A movie can belong to more than one genre, right? It doesn’t just have to belong to one category, like action or comedy. The movie can be a combination of two or more genres. Hence, multi-label image classification.

The dataset we’ll be using contains the poster images of several multi-genre movies. I have made some changes in the dataset and converted it into a structured format, i.e. a folder containing the images and a .csv file for true labels. You can download the structured dataset from here. Below are a few posters from our dataset:

You can download the original dataset along with the ground truth values here if you wish.

Let’s get coding!

movie_posters

First, import all the required Python libraries:

Now, read the .csv file and look at the first five rows:

multi label dataset

There are 27 columns in this file. Let’s print the names of these columns:

train columns

The genre column contains the list for each image, which specifies the genre of that movie. So, from the head of the .csv file, the genre of the first image is Comedy and Drama.

The remaining 25 columns are the one-hot encoded columns. So, if a movie belongs to the Action genre, its value will be 1; it is 0. The image can belong to 25 different genres.

We will build a model that will return to the genre of a given movie poster. But before that, do you remember the first step for building any image classification model?

That’s right – loading and preprocessing the data. So, let’s read in all the training images:

A quick look at the shape of the array:

image shape

There are 7254 poster images, and all the images have been converted to a shape of (400, 300, 3). Let’s plot and visualize one of the images:

This is the poster for the movie ‘Trading Places’. Let’s also print the genre of this movie:

This movie has a single genre – Comedy. Our model would next require the true label(s) for all these images. Can you guess the shape of the true labels for 7254 images?

Let’s see. We know there are a total of 25 possible genres. We will have 25 targets for each image, i.e., whether the movie belongs to that genre or not. So, all these 25 targets will be either 0 or 1.

We will remove the ID and genre columns from the train file and convert the remaining columns to an array, which will be the target for our images:

The shape of the output array is (7254, 25) as we expected. Now, let’s create a validation set that will help us check the performance of our model on unseen data. We will randomly separate 10% of the images as our validation set:

The next step is to define the architecture of our model. The output layer will have 25 neurons (equal to the number of genres), and we’ll use sigmoid as the activation function.

I will use a certain architecture (given below) to solve this problem. You can also modify this architecture by changing the number of hidden layers, activation functions, and other hyperparameters.

Let’s print our model summary:

model_summary

Quite a lot of parameters to learn! Now, compile the model. I’ll use binary_crossentropy as the loss function and ADAM as the optimizer (again, you can use other optimizers as well):

Finally, we are at the most interesting part – training the model. We will train the model for 10 epochs and also pass the validation data that we created earlier to validate the model’s performance:

model training

We can see that the training loss has been reduced to 0.24, and the validation loss is also in sync. What’s next? It’s time to make predictions!

The Game of Thrones (GoT) and Avengers fans – this one’s for you. Let’s take the posters for GoT and Avengers and feed them to our model. Download the poster for GOT and Avengers before proceeding.

Before making predictions, we need to preprocess these images using the same steps we saw earlier.

Now, we will predict the genre for these posters using our trained model. The model will tell us the probability for each genre, and we will take the top 3 predictions from that.

game of thrones

Impressive! Our model suggests Drama, Thriller, and Action genres for Game of Thrones. That classifies GoT pretty well in my opinion. Let’s try our model on the Avengers poster. Preprocess the image:

And then make the predictions:

avengers

The genres our model comes up with are Drama, Action, and Thriller. Again, these are pretty accurate results. Can the model perform equally well for Bollywood movies? Let’s find out. We will use this Golmal 3 poster.

You know what to do at this stage – load and preprocess the image:

And then predict the genre for this poster:

golmal

Golmaal 3 was a comedy and our model has predicted it as the topmost genre. The other predicted genres are Drama and Romance – a relatively accurate assessment. We can see that the model is able to predict the genres just by seeing their poster.

Next Steps and Experimenting on your own

This is how we can solve a multi-label image classification problem. Our model performed well even though we only had around 7000 images for training it.

You can try to collect more posters for training. I suggest making the dataset so that all the genre categories will have comparatively equal distribution. Why?

Well, if a certain genre repeats in most training images, our model might overfit that genre. And for every new image, the model might predict the same genre. To overcome this problem, you should have an equal distribution of genre categories.

These are some of the key points you can try to improve your model’s performance. Any other you can think of? Let me know!

End Notes

This article delved into multi-label image classification, exploring its nuances and applications. We addressed the complexity of predicting multiple genres from movie posters by leveraging deep learning techniques, particularly the sigmoid activation function and binary_crossentropy loss. Through meticulous annotation and preprocessing of training data, we constructed a robust classifier capable of discerning various genres with impressive accuracy.

Our model, trained on a diverse dataset, demonstrated its prowess by accurately predicting genres for iconic movies like Game of Thrones and Avengers. Furthermore, we highlighted the significance of data distribution in enhancing model performance, emphasizing the need for balanced training datasets. This journey elucidated the power and versatility of multi-label image classification beyond genre prediction, offering insights into its broader applications, such as automatic image tagging. As we conclude, we invite readers to embark on their experimentation, exploring novel avenues and pushing the boundaries of this fascinating field.

Frequently Asked Questions

Q1. What is Multi-Label Classification in Machine Learning?

Ans. Multi-label classification in machine learning refers to assigning multiple labels to instances. Unlike multi-class classification, where each instance is assigned only one label, multi-label classification allows for multiple labels per instance. This is common in scenarios like image datasets where an image may contain multiple objects. Evaluation metrics such as the F1 score can be used to measure the performance of multi-label classification models trained using frameworks like Keras.

Q2. Why are we using sigmoid here?

Ans. The sigmoid activation function is used in multi-label image classification because it allows for independent probability predictions for each class. Unlike softmax, which is used in multi-class classification and enforces that probabilities sum up to one across all classes, sigmoid treats each class prediction independently. This is crucial in multi-label classification tasks where an image can belong to multiple classes simultaneously. Using sigmoid, the model can predict the presence or absence of each label separately, effectively transforming the problem into a series of binary classification tasks.

Q3. What are the challenges of multi-label image classification compared to single-label classification?

Ans. In multi-label image classification, compared to single-label classification, challenges arise due to the complexity of predicting multiple labels simultaneously. Annotating data becomes more intricate, requiring comprehensive labeling for each class present. Deep learning classifiers such as CNNs must handle this complexity efficiently, often necessitating specialized techniques like sigmoid activation and binary cross-entropy loss. Evaluation metrics like the F1 score become crucial in accurately assessing the classifier’s performance. These challenges underscore the heightened intricacy of multi-label classification tasks in computer vision and machine learning.

Pulkit Sharma 18 Feb 2024

My research interests lies in the field of Machine Learning and Deep Learning. Possess an enthusiasm for learning new skills and technologies.

Frequently Asked Questions

Lorem ipsum dolor sit amet, consectetur adipiscing elit,

Responses From Readers

Clear

Vijit
Vijit 15 Apr, 2019

Thanks Pulkit for explaining the Multi-Label Image Classification in such an easy way.

Shital
Shital 15 Apr, 2019

Great Thanks for sharing

Ibrahim K
Ibrahim K 15 Apr, 2019

Amazing, thank you so much

Shrikant
Shrikant 15 Apr, 2019

How much memory takes when we convert the image to the array. I mean How much memory will hold X variable. I am running on the kaggle platform but I get a memory error.

Xu Zhang
Xu Zhang 17 Apr, 2019

What do you think about using sklearn's multi-label classifier to do this? Which one is better? Thanks

Ian
Ian 17 Apr, 2019

so glad to have found this site

Mark
Mark 18 Apr, 2019

Hi Pulkit. Thank you so much for this article. You really have a gift of explaining and simplifying these things so that even I can understand them! Have you perhaps done a similar article/tutorial on object detection (multiple objects per image and their bounding boxes)? If so I would be very interested in reading it.

enes polat
enes polat 18 Apr, 2019

Hi PULKIT SHARMA Thank you first of all. When I tried on Colab, this code caused memory error. Espacially Error occured while I was creating X variable then splitting train test. How can I solve my problem? Thanks

Shyam Chari
Shyam Chari 20 Apr, 2019

The article is written very well, i have a few questions about the train_image = [], i tried the kaggle kernel with GPU & without GPU but i keep running out of memory so the X data frame is not created, i also tried the google colab notebook also the same issue, is there a way to load all images without running out of memory, i.e some kind of batch processing the images. I thought of reducing the number of images from the data set itself by removing randomly 1500 images from the data set. I would be helpful if you could help me. Thanks

Pankaj J
Pankaj J 23 Apr, 2019

Hi Pulkit, You have a style to explain concepts so easily. Thank you so much. I have following thought - Can we have any unsupervised method for this problem?

Leo
Leo 26 Apr, 2019

Hi Pulkit, This is a great tutorial and thank you very much for sharing this! This one motivated me to write the same architecture and tsest it on PyTorch. One thing I do not get is that in your summary report (right after you defined your network architecture) and you present a summary of it, the shapes of your output are not consistent ,e.g. after your first convolutional step you get an output size of 396 x 296, which should be 396 x 396. That shouldn't be happening without any padding/stride, right? Maybe you wanted to read your images in 400x300x3 instead of 400x400x3? With this input, your numbers add up perfectly! Plus, Ithink I have a method to avoid overfitting in the loss function.

Dinesh Chauhan
Dinesh Chauhan 03 May, 2019

Thanks for detailed explaination Pulkit. I tried to reproduce this code on my Laptop & Google Colab but in both cases RAM maxed out (20 GB). Any idea on hardware/cloud side so that I can spin new VM. Also you divided img by 255 "img = img/255" could you explain why ?

Aishwariya Gupta
Aishwariya Gupta 05 May, 2019

Hello! This is a really wonderful explanation. However while running this after model.add(Conv2D(filters=16, kernel_size=(5, 5), activation="relu", input_shape=(224,224,3))) it doesn't run since it shows an AttributeError: module 'tensorflow' has no attribute 'get_default_graph'. I checked on stack overflow and tried implementing changes however it still persisted. Could you give me some alternative approach to tackle this?

PREM PRAKASH PATTNAIK
PREM PRAKASH PATTNAIK 18 May, 2019

Getting error at this line: X = np.array(train_image) Maxed out of memory. How to use in chunks ? I mean if i have millions of images, it would be impossible for a ram to load all of it at once. How to solve that issue ? we can store as numpy array in chunks in local hard-disk with .npy extension and then use it in chunks too. That would solve the memory issue i guess.

Rahul
Rahul 22 May, 2019

Hi Pulkit, Great explanation.Good job bro!!! Could you please help me with an issue as when i am training my model the loss is showing as 0?

shangeth
shangeth 02 Jun, 2019

Hey, Nice post. But is accuracy_score a good metric to use for multi label classification?. As most of the labels are 0, so even an un trained/ 0 model will give a good accuracy score. for ex: label1 = [0,0,0,1,0,0,0,0,0,0,0,1] pred1 = [0,0,0,0,0,0,0,0,0,0,0,0] form a zero returning model. here the accuracy will be 83.33% As '1's are the deciding the performance of the model, we should use some metric which consideres the positive predictions and labels like precision,recall.....

Adarsh
Adarsh 04 Jun, 2019

Can you tell me about the Krill Herd optimization algorithm? I got stuck in this problem. your help will be appreciable.

Tom
Tom 27 Jun, 2019

Great tutorial, I like it and very good explanations. Is there any recommendation how to run it on lower-memory cpus? Can I simply create Keras checkpoints and use smaller training sets (e.g. 1000 images with 90/10 test-split) and train it in multiple steps by reloading the weights file?

prudviraj
prudviraj 06 Jul, 2019

Hi, Help me to understand technical details. how are we learning images with multiple labels? In a nutshell, are we learning {image, [g1, g2,g3]} or {[image1, g1], [image1, g2], [image1, g3]}. if we use the first one that will be simple image classification (that doesn't make sense!!!). later one may confuse the model while training if we use for some 1000 or 2000 classes. how to cope up with this situation.

Ruchika
Ruchika 12 Jul, 2019

Hi Pulkit Kindly post codes for building image dataset into .csv file as required in multi label image classification problem.

Ruchika
Ruchika 15 Jul, 2019

Hi pulkit I want to convert my imagedatset into .csv file. I need your help in that. Kindly share some codes which will do the nedful conversion required by multi label problem. waiting for your reply Thanks

Judy
Judy 18 Jul, 2019

PULKIT , you did a great job. I am doing some research on industry inventory management. There are over 2000 kind of components to identify and counting by using artificial intelligence. your research really provide me some great hints. Thank you very much. I will use your article as reference in my thesis. Thank you very much.

Ekanshu
Ekanshu 31 Jul, 2019

Hi Pulkit, Nice post. Link for the structured dataset is not working. Can you please update the link so that I download it. Thanks.

Elisabeth Southgate
Elisabeth Southgate 01 Aug, 2019

I appreciate you helping me learn more about image labeling. It is interesting that it can be used for both binary and multi-class image classification. My nephew is getting into all of this. He will be interested to know that you can do both binary and multi-class images.

Ashish
Ashish 09 Aug, 2019

Hi Pulkit, Thanks for such a amazing article it helped me to understand multi label image classification.Just want to know if you can help how we can use transfer-learning with such type of multi label classification?

Chitranshu
Chitranshu 12 Aug, 2019

While writing the code using RNN, I am not getting the problem conceptually. Like how should I solve the same problem using RNN.

Nathalie Beaudoin
Nathalie Beaudoin 12 Aug, 2019

Hi, I am trying to understand if I can use ML and classification to do my project. First I need the image to know how many zones are there in the image.. lets say I have either 2 zones or 3 zones. Then I would like that the zones are defined in pixels rectangle by the classification. So for your animals examples, it would either return 2 animals or 3 animals as the classifier. then be able to define the rectangle for each animal. After then in each zone be able to return additional classification results.. so lets say it would return color, type and hair length. Then I guess I can use the classification result to make a program and return some result to the user.. makes sense ? Thanks for your help

Ashish
Ashish 18 Aug, 2019

sir, every time you select best three, but what if images has different number of multi-label.. for ex. image1 {3,4} image2 {0,5,9,2} image3 {23} so, my question is ,how to select best number of class, what kind of threshold i need to apply to select 1's and 0's. i hope ,you understand my problem

Akhil Jaywant
Akhil Jaywant 10 Sep, 2019

I want to know that what objective is achieved on training a dataset containing a totally different kind of posters containing just images , I mean what all parameters will it be trained on..And then you would pass a different poster of a movie and ask it to return the genres. Personally I feel there is nothing common in the posters, I mean there are no similar parameters on the trained images and testing one. Change my mind....

Ram
Ram 25 Sep, 2019

Hi Pulkit, Thanks for the great article. I just have one doubt in general about Multilabel classification - If we also have few sets of images which doesn't belong to any of the labels in the training data do we need to have a separate label as "No label" for differentiating these images or if the predicted probabilities for all other labels for an image is less than threshold can we consider it as no label image? Please let me know your thoughts and if we have any resources for this kind of problem. Thanks

HARIPRIYA
HARIPRIYA 01 Oct, 2019

Hi Pulkit, I have downloaded the dataset and tried running the program, when I convert train_image list to numpy array X, I got memory error in spyder anaconda platform. So, I have uploaded the images to google drive and tried running in google colab. But still the images loading to train_image list stops at 89%. I reconnected this for 3 times and tried. The connection stops at that time. Can you give me any idea on how to solve this ?

Abhishek Khandelwal
Abhishek Khandelwal 08 Oct, 2019

Hello Pulkit How to validate accuracy of such multi label image classification model? Is there any sklearn library available for same? any idea?

orde
orde 10 Oct, 2019

I am not able to load the images with the code you provided: train_image = [] for i in tqdm(range(train.shape[0])): img = image.load_img('Multi_Label_dataset/Images/'+train['Id'][i],target_size=(224,224,3)) img = image.img_to_array(img) img = img/255 train_image.append(img) X = np.array(train_image) I keep getting the following error. I've tried different things to no avail. No such file or directory: ' Multi_Label_dataset/Images/tt0086425'

Estefania
Estefania 02 Nov, 2019

Thank You So Much Sharma. This article motivate me to learn more about image processing.

Khani
Khani 20 Nov, 2019

Hi, i have a question. Can I use this method to classify an image where multiple objects of the same class are on the picture? Or can this even solved with multi-class classification? I have pictures with a box with multiple same class objects in it. Those pictures I would like to take to train, is that possible or do I need a set where only one object is in the picture? Thanks

Nisarg Mehta
Nisarg Mehta 22 Nov, 2019

Hi Pulkit Great Article .. I had a question -- Can You please tell me how to convert image dataset in .csv file? Is there any code for it..?

newbiecoder
newbiecoder 03 Dec, 2019

Hi, Great article I have a question, i dont have a csv file so what do i do to replace this line of code classes = np.array(train.columns[2:]) Basically what I'm trying to do is to predict an image with only the model. Can u give me a sample on how to predict an image only with the model? Thanks Hi, Great article I have a question, i dont have a csv file so what do i do to replace this line of code classes = np.array(train.columns[2:]) Basically what I'm trying to do is to predict an image with only the model. Can u give me a sample on how to predict an image only with the model? Thanks

georges
georges 03 Mar, 2022

Hello Pulkit the link about the dataset structured said it doesn't exist anymore can you do something to solve this issue please ? thanks for your help :)

Sheidi
Sheidi 08 Mar, 2022

Hi I can't download the dataset from the link that you provide for us "from here" and the original one doesn't have the csv file.

Surabhi Hom Choudhury
Surabhi Hom Choudhury 11 Mar, 2022

The link to the structured dataset is not working. Can you please check?

kassawmar
kassawmar 21 Mar, 2022

Hi Pulkit, Thanks for such a amazing article it helped me to understand multi label image classification. Just want to know if you can help how we can use multi-task learning problems with such a type of multi-label classification?

Zhiyi Ren
Zhiyi Ren 31 Mar, 2022

Hi Pulkit, Nice post and learn a lot! The google drive link with CSV file doesn't exist. Could you update the latest link, Thank you

Surabhi Hom Choudhury
Surabhi Hom Choudhury 20 Apr, 2022

Can you please check the link for the structured dataset? It doesn't seem to be working

liao
liao 15 Jun, 2022

Hi Pulkit Great Article ,Sorry to bother you, I would like to ask if you can request the csv file that has been organized on the article ( the link to the article has expired)

Tanisha
Tanisha 08 Jul, 2022

Hello Pulkit, I found this article interesting and was trying to implement your code but the dataset link is not working. Would be great if you can share it .

Tanisha
Tanisha 08 Jul, 2022

Hello Pulkit, I found this article interesting and was trying to implement it but the dataset link is not working. Would be great if you can share it.

Akash
Akash 24 Jul, 2022

Hi Pulkit, Link for the structured dataset is not working. Can you please update the link so that I download it. Thanks.

Tess Gadwa
Tess Gadwa 03 Aug, 2022

Hi, just wanted to let you know that the Google Drive link for your dataset is no longer operational. Too bad! This looks like an excellent tutorial.

Bryan
Bryan 15 Oct, 2022

Good explanation! By the way I want to ask something, the dataset is multi-classification right ? (value is 0 or 1, exist or not), but when you tested it the result is probability (its a regression?), so the result for this model is 25 regression value? If so, I would be so happy because right now im making a multi-label image regression model (predicting the composition of 6 types of algae in a pond image), not multi-label image classification model

Bryan Immanuel
Bryan Immanuel 15 Oct, 2022

Also can i get the dataset? because the link above doesnt work. Thanks

Blair
Blair 20 Feb, 2023

Same here. Thanks for your time for contributing this amazing tutorial, just wonder where can we get the updated link for this file? thanks:)

ABCD
ABCD 06 May, 2023

Pulkit, this drive link for .CSV is not working as of today for me. Can you please provide an updated link for csv?