No video

Transfer Learning Using Keras(ResNet-50)| Complete Python Tutorial|

  Рет қаралды 87,300

Nachiketa Hebbar

Nachiketa Hebbar

Күн бұрын

In this video i show you you can use the keras and tensorflow library to implement transfer learning for any of your image classification problems in python.
Transfer learning allows you to use weights learnt by state of the art convolutional neural networks or CNN like Resnet, Inception or VGG and fine tune it for your image data.
Do subscribe to the channel and like the video if you want more videos like this!
Source Code: github.com/nac...
Complete Code Walkthrough in my blog(Contains Source Code):
You can connect with me on my socials:
Linkedin: / nachiketa-hebbar-86186...
My 2nd KZfaq Channel: / @nachitalks
My medium account(I publish blogs here): / nachihebbar

Пікірлер: 149
@leoyuanluo
@leoyuanluo Жыл бұрын
the most no-nonsense straight to the point video on resnet video, keep up the good work!
@literacy_01
@literacy_01 2 жыл бұрын
Great Resource. As the rookie in the Machine Learning field, this is really practical exercise for the one who wants to integrate ResNet (Not only this, but also other model as he mentions in here) model to the Sequential layers.
@prathyushaa8326
@prathyushaa8326 3 жыл бұрын
I've been trying to implement resnet for days, finally this has helped me. Thank you so much :)
@milafii7347
@milafii7347 2 жыл бұрын
Do you know how to get an output or repreaentation of the extracted features?
@fabiofiestas8583
@fabiofiestas8583 2 жыл бұрын
Thank you very much, I've trying to implement ResNet for a long time, this video really helped me. Please upload more videos :)
@josemariovalenciahenao1530
@josemariovalenciahenao1530 2 жыл бұрын
Thanks to this video I discovered your amazing channel! Thank you Nachiketa, You are the man! Thanks a lot for all your efforts, trully appreciated from the other side of the world. Please keep this amazing job, God bless you my friend.
@NachiketaHebbar
@NachiketaHebbar 2 жыл бұрын
Means a lot, thanks!
@alexisbaladon798
@alexisbaladon798 Жыл бұрын
Thank you so much for the content! This really helped me understand how to fine-tune a model in one of my projects :)
@keithwetton1937
@keithwetton1937 8 ай бұрын
Thanks for this, it was very helpful. I just had to change the import lines to deal with a newer version of keras.
@herberthipolito9941
@herberthipolito9941 Жыл бұрын
Thanks for the video!! It was really handy for my project!!
@shariqueansari9921
@shariqueansari9921 2 жыл бұрын
Thanks Bhai kafi din se pareshan tha me Resnet ko le kr
@adibamaniyar741
@adibamaniyar741 Жыл бұрын
Your teaching is very good👍
@morffisTFT
@morffisTFT 3 жыл бұрын
Mr Hebbar, your content is amazing! Please continue with the great work!
@NachiketaHebbar
@NachiketaHebbar 3 жыл бұрын
Thanks a lot!
@EliseGreen-tz2qe
@EliseGreen-tz2qe Ай бұрын
Thank you awesome video very helpful!
@Liz_871
@Liz_871 Жыл бұрын
Hey, great video, thank you very much for the explanation and material. I needed to put the loss function to "sparse_categorical_crossentropy" because otherwise it said shape value error.
@sahilsharma7501
@sahilsharma7501 Жыл бұрын
Exactly, I just came here to comment on this, but you already did 😆
@user-lt6jg5nw6q
@user-lt6jg5nw6q Жыл бұрын
Thanks a lot for your advice! You saved me!
@mums2109
@mums2109 Жыл бұрын
Thank you for this! Wonderful explanation
@mikilmku1554
@mikilmku1554 Жыл бұрын
Hi, how can I save the model? When I do resnet_model.save('name_model.h5') it gives me an error. I searched information about it but I do not know how to solve It. The error is: Layer ModuleWrapper was created by passing non-serializable argument values in `__init__()`, and therefore the layer must override `get_config()` in order to be serializable. Please implement `get_config()`.
@rahulvansh2390
@rahulvansh2390 3 жыл бұрын
A suggestion: There are very less opportunities for Machine learning engineer, data scientist, deep Learning engineer, ai engineer even though it's highly demanded. I highly recommend to focus on opening of such roles in good companies/ startups. Every youtube focusing on software engineering or sde roles openings, please give priority to such roles as well. Also please share interview experience of people who got such roles as a FRESHERS in good companies on campus or off campus. Thank you 😊🙏🏻
@maaleem90
@maaleem90 Жыл бұрын
Brother iam very displeased with you. What kind of explanation is that. Who does that. How can your explanation be so easy to understand. Iam displeased coz why didn't I see your videos till this time. But now iam happy that i got someone who explains like others understand. Congrats for a new subscriber.
@NachiketaHebbar
@NachiketaHebbar Жыл бұрын
You had me in the first half :)
@maaleem90
@maaleem90 Жыл бұрын
@@NachiketaHebbar brother, that's a style of talk I adopted if I want someone not just to listen to me but also reply. brother again, thanks for your knowledge sharing .
@rajashehryar2002
@rajashehryar2002 8 ай бұрын
You got a subscriber buddy. Very well....
@milinduprabhash1216
@milinduprabhash1216 Ай бұрын
Thank you Bro that's very useful
@taha_acoustica1600
@taha_acoustica1600 4 ай бұрын
this was so helpful, thank you so much!
@matildabich660
@matildabich660 2 ай бұрын
bro i learned this for 1 semester and you just explained it in 10 minutes....and i understand it. how
@marcospallone4515
@marcospallone4515 2 жыл бұрын
Easy and effective! Top!
@harvardyard79
@harvardyard79 3 жыл бұрын
I'm confused why there is only training and validation. Why is there not also a testing dataset? Isn't validation data used to optimize hyperparameters only? It seems you're using the validation data to evaluate accuracy. Is this normal?
@vikneshrajan5830
@vikneshrajan5830 2 жыл бұрын
I'm getting an error saying "This model has not yet been built. Build the model first by calling `build()` or calling `fit()` with some data, or specify an `input_shape` argument in the first layer(s) for automatic build." what should I do?
@adib1032
@adib1032 2 жыл бұрын
Thanks for the content!
@waqasmazhar1260
@waqasmazhar1260 2 жыл бұрын
Fab explanation✌
@DrShaziaSaqib
@DrShaziaSaqib 2 жыл бұрын
thank you awesome, God bless you
@ahmetberkay9336
@ahmetberkay9336 2 ай бұрын
hello my friend. i am planning to use resnet50 for my project. basically the project is about birads classification. i have dataset which has around 3000 images and 3 classes (birads2, birads4, birads5). i want this model to classify the mammography pictures as birads classification. i tried to fine tune this model but it didn't really work. do you have any suggestions or hints for me to tune this model for such a detailed and complicated birads classification?
@saisingireddy2359
@saisingireddy2359 2 ай бұрын
Same case brother I used efficientnetb3 for hand gesture classification but its initial accuracy is around 20 and rising so slowly any suggestions 😢?
@321-youvrajsinghgaur3
@321-youvrajsinghgaur3 Жыл бұрын
Plz Plz plz tell how to save this model in .h5 format!!!!!!!
@ahmedhope
@ahmedhope 2 жыл бұрын
i'm using the same code and the same dataset as yours but i get this error plz help NameError Traceback (most recent call last) in () 2 history = resnet_model.fit( 3 train_ds, ----> 4 validation_data=val_ds, 5 epochs=epochs) NameError: name 'val_ds' is not defined
@ishita5132
@ishita5132 Жыл бұрын
It's a name error. You must have done something wrong in naming, maybe capitalised a letter or something while writing val_ds at the two places.. Check on that once
@Paattiil
@Paattiil 3 жыл бұрын
hi make a video on anamoly detection. using python on time series data. to detect node tampering
@danielsw7011
@danielsw7011 2 жыл бұрын
I would like to ask a question. When you split the data into training and validation. Why did you split it into 2 different parts, it makes me think that there's a chance that there are the same images in both training and validation, which makes the result higher than it's should be. Usually, people use the 'split folders' and 'split validation test set' and it's confirmed that there will be no double images that will affect the result of the models.
@normalhuman6260
@normalhuman6260 2 жыл бұрын
the seed value makes sure that a certain pattern is used to select validation and training data
@mahdifarhadi798
@mahdifarhadi798 2 жыл бұрын
Thank you , Can you write a code in keras.application and the weights aren't 'imagenet' ?
@lauris2132
@lauris2132 4 ай бұрын
Thank you!
@kapedalex1996
@kapedalex1996 Жыл бұрын
Keras wants you to use sparse_categorical_crossentropy. Otherwise there will be errors today
@nourelislamzouar2490
@nourelislamzouar2490 Жыл бұрын
I was unable to make his code work until I saw your comment, thank you so much man!
@vedachintha
@vedachintha 10 ай бұрын
It is very important to understand the data you are using before choosing the components of your neural network. The code in the video is correct since it utilizes label_mode="categorical" in conjunction with the categorical cross-entropy loss function. If you intend to use the sparse_categorical_cross_entropy loss function, you must specify label_mode="int". This is especially important because it appears that the data used in the video may not be identical to the data available to us (I did not verify this). The categorical cross-entropy loss function requires one-hot encoding for each class. For example, if there are three classes, A, B, and C, this loss function will work only if the class labels are encoded as [1, 0, 0], [0, 1, 0], and [0, 0, 1], respectively. This encoding is achieved by using the label_mode="categorical" argument. On the other hand, sparse_categorical_cross_entropy does not require such encoding and assigns integers (e.g., 1, 2, 3) to classes A, B, and C. This loss function is preferable when dealing with a large number of classes, such as in predicting words in a vocabulary, as it conserves memory resources A comprehensive introduction to loss functions can be found here: machinelearningmastery.com/how-to-choose-loss-functions-when-training-deep-learning-neural-networks/
@AswathyG-wt3rq
@AswathyG-wt3rq 4 ай бұрын
which version of TenssorFlow are you using here?
@hiluu
@hiluu 4 ай бұрын
Hi, i have a question. In the video at 8:25, you said it slightly overfitting. Can you help me what to do to resolve the overfitting problem? I have the same issue like in the video? I'm new to this, hope you help me. Thanks!
@saisingireddy2359
@saisingireddy2359 2 ай бұрын
Try to add dropout and batch normalization and you can even try l2 and l1 regularizers too😊
@RAHULAGRAWAL-zo4iy
@RAHULAGRAWAL-zo4iy 4 ай бұрын
@NachiketaHebbar Hello, I found the error in this line, please do the needful asap. history = resnet_model.fit( train_ds, validation_data=val_ds, epochs=20 ) Error: ValueError: Shapes (None, 1) and (None, 5) are incompatible
@MUHAMMADALI-qk9xs
@MUHAMMADALI-qk9xs Жыл бұрын
Hi, can you help me with what changes in the above code I should do if I have two classes malicious and non_malicious and a dataset of GRAYSCALE images?
@compmaestro
@compmaestro 2 жыл бұрын
Hi, thanks for this wonderful video. Can you please explain how can we use some data for test purpose (like you divided dataset into training and validation data) to evaluate the model's performance. Thanks
@riyaarora2384
@riyaarora2384 Жыл бұрын
J0
@mishkathossain2984
@mishkathossain2984 10 ай бұрын
Vaya why didn't you applied anything on testing?? How much the model works on testing dataset??
@hiahpsasmlte7555
@hiahpsasmlte7555 2 жыл бұрын
is there a way to save my progress on training ? has anyone tried it with this architecture? and great video!
@harishgoud3628
@harishgoud3628 2 жыл бұрын
my network is starting with 43% accuracy in epoch unlike 70% which is in ur code , any idea why so but model is able to learning and val acuracy is at 40/50 range
@sagnikdutta7206
@sagnikdutta7206 6 ай бұрын
Question: Why do you need Flatten() even though the last layer of Resnet50 is a GlobalAverage layer?
@rutwikmore7462
@rutwikmore7462 5 ай бұрын
exactly I have also same doubt
@talharauf3111
@talharauf3111 2 жыл бұрын
Thankz Man
@nathanmcnaughton4468
@nathanmcnaughton4468 Жыл бұрын
I have a dataframe with each row as an image and the columns as the pixels, would that be the same?
@computer_vision
@computer_vision Жыл бұрын
lets test your knowledge :) 1.is it possible to use transfer learning on VIT(vision transformer model ) ? 2. suppose I trained a mobilenetv2 model , now I want to use this pre-train weights on vgg16 model for transfer learning is it possible to do so .? if not explain why ?
@achininisansala5124
@achininisansala5124 Жыл бұрын
please tell me how to get ROC curve when I implement my code in this pattern without doin train test split
@feignedganger
@feignedganger Жыл бұрын
Is it possible to load zip file from local file explorer ? I am getting error no file found.
@clotildamariamathias7416
@clotildamariamathias7416 2 жыл бұрын
I want to implement with Xception..... What changes should be done
@MG-tc5bo
@MG-tc5bo Жыл бұрын
When I try this with other datasets I get "Shapes (None, 1) and (None, 4) are incompatible"
@jujuvil7013
@jujuvil7013 2 жыл бұрын
Hi bro i couldn't download resnet50 in pycharm since it is asking for old version of python . What should i do
@ayeshakhatun3114
@ayeshakhatun3114 Жыл бұрын
please help me ...i have followed the same code but getting error at the fit function... it shows " ValueError: Shapes (None, 3) and (None, 4) are incompatible"
@AkshayRakate
@AkshayRakate Жыл бұрын
Make sure you are using a number of neurons in softmax layer = number of categories
@shivammaheshwari1598
@shivammaheshwari1598 2 жыл бұрын
Nachiketa, from where we can download pretrained weights ?
@ganesha4281
@ganesha4281 2 жыл бұрын
how we can use the transfer learning model for time series IMU Sensor data?
@user-cq5iu9dk2e
@user-cq5iu9dk2e Жыл бұрын
thanks❤
@seme_K
@seme_K Жыл бұрын
Please do a video on Densenet-121
@vivekrajeevv7164
@vivekrajeevv7164 4 ай бұрын
Can you give the test accuracy
@chaymaebenhammacht1618
@chaymaebenhammacht1618 Жыл бұрын
Hello thaank u so much for this model but its not working on mu own dataset i dont know why exactly
@abhishekagarwal7752
@abhishekagarwal7752 Жыл бұрын
code is not working. ( ValueError: Shapes (None, 1) and (None, 5) are incompatible)
@abhishekagarwal7752
@abhishekagarwal7752 Жыл бұрын
soution = replace loss='sparse_categorical_crossentropy'
@vyas8137
@vyas8137 3 жыл бұрын
Bro could you make a video on 'complete roadmap for becoming computer vision engineer'?
@NachiketaHebbar
@NachiketaHebbar 3 жыл бұрын
Will try to make one on it soon
@mishkathossain2984
@mishkathossain2984 10 ай бұрын
How can I run This on My Leaf disease dataset??
@puneetkaur7725
@puneetkaur7725 Жыл бұрын
Hello sir , your website is unavailable, how i get code now??
@soroveakterkakon9165
@soroveakterkakon9165 2 жыл бұрын
How can i implemented confusion matrix in this code?plz help me
@maxborn7400
@maxborn7400 Жыл бұрын
Thanks for the great video and explaining everything in detail. I copied your github code, and it was running fine, until this part: resnet_model.add(Dense(5, activation='softmax')) I got an error: ValueError: Shapes (None, 1) and (None, 5) are incompatible. There's a long Traceback for it, but this seemed to be an issue with the output image, so I changed that very last layer to: resnet_model.add(Dense(1, activation='softmax')) Now the training runs, but the accuracy is really bad, around 0.25! Any resolution here? I don't know exactly why the output layer had to be mapped to a (None, 1) shape.
@tony-iy5xf
@tony-iy5xf Жыл бұрын
***Do not change your last layer to resnet_model.add(Dense(1, activation='softmax')) your NN needs to recognize between 5 classes(like in this video example). ***Try to use loss='sparse_categorical_crossentropy' in yourmodel.compile() function. That problem appears because your labels are in numbers(0,1,2,3...) not in one hot encoding.
@maxborn7400
@maxborn7400 Жыл бұрын
@@tony-iy5xf Thanks, that fixed it, and training epochs reached 1.0000. Why did the code work for you, when you had loss='categorical_crossentropy'? Because I just copied your code from github, and there the loss was set to that method.
@doggydoggy578
@doggydoggy578 Жыл бұрын
@@tony-iy5xf This. Anyone who have trouble should listen to this guy
@shreearmygirl9878
@shreearmygirl9878 2 жыл бұрын
Hi, Hebbar pl can u send th videos for creating our own dataset using satellite images fro classification
@syedzoofa8711
@syedzoofa8711 2 жыл бұрын
It's showing me the error at resnet_model.add(pretrained_model)
@varungupta4126
@varungupta4126 2 жыл бұрын
Hey how I can add my own custom dataset in this code
@rahul-kz6sc
@rahul-kz6sc 5 ай бұрын
Why my model predict wrong
@durgaprasadkakarla5311
@durgaprasadkakarla5311 Жыл бұрын
giving an error as name resolution in kaggle kernal
@user-qd2zn4bk9h
@user-qd2zn4bk9h Жыл бұрын
Great stuff I just had a doubt if you could help with that When I am trying to reproduce your code I am running into an error in the model.fit() cell of code The error I am getting is "ValueError: Shapes (None, 1) and (None, 5) are incompatible" Can you please help me resolve this
@dhruvil8
@dhruvil8 Жыл бұрын
Hii naman , did you find the solution to this ? I've got the same problem
@hubertmsuya8071
@hubertmsuya8071 Жыл бұрын
@@dhruvil8 use sparse_categorical_crossentropy
@Roomii
@Roomii Жыл бұрын
@@hubertmsuya8071 it doesnt work
@DivyasriJampana
@DivyasriJampana Жыл бұрын
can u post how to plot confusion matrix for this code
@anirudhbmitta6597
@anirudhbmitta6597 2 жыл бұрын
How to use two transfer learning models on a single model
@anthonynguyen2027
@anthonynguyen2027 3 жыл бұрын
nice vid
@MySmithereens
@MySmithereens Жыл бұрын
hello can anyone help me, i get error when i implement that code
@nibhanapuri4476
@nibhanapuri4476 3 жыл бұрын
I corrected the below error , The code in blog and in video are different , I corrected code according video and it is working , but one error is getting below code snippet.. can you reslove the error import matplotlib.pyplot as plt plt.figure(figsize=(10, 10)) for images, labels in train_ds.take(1): for i in range(6): ax = plt.subplot(3, 3, i + 1) plt.imshow(images[i].numpy().astype("uint8")) plt.title(class_names[labels[i]]) plt.axis("off")
@NachiketaHebbar
@NachiketaHebbar 3 жыл бұрын
What error are you getting in this
@anthonieschaap1625
@anthonieschaap1625 9 ай бұрын
The code has error: "ValueError: Shapes (None, 1) and (None, 5) are incompatible"
@anthonieschaap1625
@anthonieschaap1625 9 ай бұрын
I fixed it with using "label_mode='categorical'," in he val_ds and trains_ds. Then got error "only integer scalar arrays can be converted to a scalar index" but could be solved by using: plt.figure(figsize=(10, 10)) for images, labels in train_ds.take(1): for i in range(6): ax = plt.subplot(3, 3, i + 1) plt.imshow(images[i].numpy().astype("uint8")) plt.title(class_names[np.argmax(labels[i])]) # Convert tensor to integer plt.axis("off")
@unio7974
@unio7974 8 ай бұрын
I got this exact error, thank you so much!@@anthonieschaap1625
@sairamadithya9650
@sairamadithya9650 3 жыл бұрын
Nice work...missing the hair
@NachiketaHebbar
@NachiketaHebbar 3 жыл бұрын
Thanks and yes, i miss them too
@personunknown58
@personunknown58 2 жыл бұрын
I'm trying this code on my custom dataset and I'm getting a lengthy error "ValueError: Shapes (None, 1) and (None, 3) are incompatible" with the mentioned line in the end.
@AkshayRakate
@AkshayRakate 2 жыл бұрын
set label_mode='categorical' in val_ds and train_ds
@tesnymeseddiki6573
@tesnymeseddiki6573 2 жыл бұрын
@@AkshayRakate thanks
@abhishekbourai1832
@abhishekbourai1832 Жыл бұрын
@@AkshayRakate Thanks for your help brother. The Epochs are executing but the images are not Printing it seems now. ERROR: 'only integer scalar arrays can be converted to a scalar index'
@ayeshakhatun3114
@ayeshakhatun3114 Жыл бұрын
@@AkshayRakate bt it does not help for me.. still i have the same error...could u plz help me
@AkshayRakate
@AkshayRakate Жыл бұрын
@@ayeshakhatun3114 what is the error ?
@onewhoflutters4866
@onewhoflutters4866 Жыл бұрын
Where can I reach you? I have some questions.
@clotildamariamathias7416
@clotildamariamathias7416 2 жыл бұрын
ValueError: Shapes (none, 1) and (none, 5) are incompatible
@clotildamariamathias7416
@clotildamariamathias7416 2 жыл бұрын
Just replace loss='categorical_crossentropy' to loss='sparse_categorical_crossentropy' It works fine 👍
@arifemreakansel9928
@arifemreakansel9928 2 жыл бұрын
model.add(Dense(number of classes, activation='softmax')) do this changes
@jmg9509
@jmg9509 2 жыл бұрын
1:18 - Imports
@kangqinyip2742
@kangqinyip2742 Жыл бұрын
Can anyone can share this code to me because the link he provide cannot work or cannot access it saying site unvailabel
@NachiketaHebbar
@NachiketaHebbar Жыл бұрын
I have updated the github link in the video description.
@sejalloya99
@sejalloya99 Жыл бұрын
need help with the confusion matrix!
@nitisarath
@nitisarath Жыл бұрын
validation accuracy not getting better help
@kangqinyip2742
@kangqinyip2742 Жыл бұрын
Can someone share the code for this tutorial I need it very badly
@NachiketaHebbar
@NachiketaHebbar Жыл бұрын
I have updated the video description with the source code link
@anuragkulkarni4991
@anuragkulkarni4991 Жыл бұрын
i need help
@kangqinyip2742
@kangqinyip2742 Жыл бұрын
Dude can you send this the code in github
@hrissaspogs3297
@hrissaspogs3297 8 ай бұрын
ya3tik douda mahlek ama zokomok l loss function 8alta
@nibhanapuri4476
@nibhanapuri4476 3 жыл бұрын
please solve the below error
@ronnybergmann7569
@ronnybergmann7569 3 жыл бұрын
in his blog the following block before the plt.figure is missing. class_names = train_ds.class_names print(class_names) It is shown in the video, however.
@brainbox5058
@brainbox5058 3 жыл бұрын
Kannada davna??
@abdullahmohan9107
@abdullahmohan9107 2 жыл бұрын
in this line history = resnet_model.fit(train_ds, validation_data=val_ds, epochs=4) I got error as ----> 1 history = resnet_model.fit(train_ds, validation_data=val_ds, epochs=4) ValueError: Shapes (None, 1) and (None, 5) are incompatible
@anmiiii
@anmiiii 2 жыл бұрын
Try adding label_mode = "categorical" as a parameter when initiating the train_ds and val_ds
@Fkb032
@Fkb032 Жыл бұрын
Thank you!
Секрет фокусника! #shorts
00:15
Роман Magic
Рет қаралды 45 МЛН
Kids' Guide to Fire Safety: Essential Lessons #shorts
00:34
Fabiosa Animated
Рет қаралды 17 МЛН
娜美这是在浪费食物 #路飞#海贼王
00:20
路飞与唐舞桐
Рет қаралды 6 МЛН
SPONGEBOB POWER-UPS IN BRAWL STARS!!!
08:35
Brawl Stars
Рет қаралды 22 МЛН
Harsh Reality of AI Jobs No one Tells You|
8:52
Nachiketa Hebbar
Рет қаралды 382 М.
L-5 | Image Classification Using ResNet-18 and Pytorch
20:16
Code With Aarohi
Рет қаралды 7 М.
Transfer Learning Using CNN(VGG 16)| Keras Tutorial|
12:36
Nachiketa Hebbar
Рет қаралды 38 М.
ResNet (actually) explained in under 10 minutes
9:47
rupert ai
Рет қаралды 92 М.
Build a Deep CNN Image Classifier with ANY Images
1:25:05
Nicholas Renotte
Рет қаралды 595 М.
ResNet Explained Step by Step( Residual Networks)
34:31
Code With Aarohi
Рет қаралды 106 М.
Image Classification using CNN Keras | Full implementation
17:56
Coding Lane
Рет қаралды 172 М.
What is Transfer Learning? | With code in Keras
10:52
AssemblyAI
Рет қаралды 24 М.
Секрет фокусника! #shorts
00:15
Роман Magic
Рет қаралды 45 МЛН