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

Поділитися
Вставка
  • Опубліковано 1 гру 2024

КОМЕНТАРІ • 153

  • @leoyuanluo
    @leoyuanluo 2 роки тому +14

    the most no-nonsense straight to the point video on resnet video, keep up the good work!

  • @AndreyKatz
    @AndreyKatz 2 місяці тому +1

    Very concise down to the point summary, no redundant words and tedious good-for-nothing introductions. Thanks!

  • @prathyushaa8326
    @prathyushaa8326 3 роки тому +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?

  • @literacy_01
    @literacy_01 2 роки тому +1

    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.

  • @tanmaychachra2950
    @tanmaychachra2950 Місяць тому

    What a great resource! Thanks for explaining it soo well

  • @fabiofiestas8583
    @fabiofiestas8583 3 роки тому +1

    Thank you very much, I've trying to implement ResNet for a long time, this video really helped me. Please upload more videos :)

  • @mikilmku1554
    @mikilmku1554 Рік тому +2

    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()`.

  • @josemariovalenciahenao1530
    @josemariovalenciahenao1530 3 роки тому

    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.

  • @matildabich660
    @matildabich660 5 місяців тому +1

    bro i learned this for 1 semester and you just explained it in 10 minutes....and i understand it. how

  • @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 :)

  • @vikneshrajan5830
    @vikneshrajan5830 2 роки тому +1

    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?

  • @keithwetton1937
    @keithwetton1937 11 місяців тому

    Thanks for this, it was very helpful. I just had to change the import lines to deal with a newer version of keras.

  • @adibamaniyar741
    @adibamaniyar741 Рік тому

    Your teaching is very good👍

  • @herberthipolito9941
    @herberthipolito9941 Рік тому

    Thanks for the video!! It was really handy for my project!!

  • @rajashehryar2002
    @rajashehryar2002 11 місяців тому

    You got a subscriber buddy. Very well....

  • @shariqueansari9921
    @shariqueansari9921 3 роки тому

    Thanks Bhai kafi din se pareshan tha me Resnet ko le kr

  • @mums2109
    @mums2109 Рік тому

    Thank you for this! Wonderful explanation

  • @ahmedhope
    @ahmedhope 2 роки тому +1

    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

  • @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?

  • @mahdifarhadi798
    @mahdifarhadi798 2 роки тому +1

    Thank you , Can you write a code in keras.application and the weights aren't 'imagenet' ?

  • @ahmetberkay9336
    @ahmetberkay9336 5 місяців тому +1

    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 5 місяців тому

      Same case brother I used efficientnetb3 for hand gesture classification but its initial accuracy is around 20 and rising so slowly any suggestions 😢?

  • @harvardyard79
    @harvardyard79 3 роки тому +1

    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?

  • @emilycharn1036
    @emilycharn1036 7 днів тому

    Why my models never improve no matter how many dense layers on top of the base model? I've tried 1 to 3 layers, with different units, different dropouts, still, my best shot until now was with densenet, using it as an extractor, with a GAP and a dense layers for the output.

  • @achininisansala5124
    @achininisansala5124 Рік тому

    please tell me how to get ROC curve when I implement my code in this pattern without doin train test split

  • @taha_acoustica1600
    @taha_acoustica1600 7 місяців тому

    this was so helpful, thank you so much!

  • @321-youvrajsinghgaur3
    @321-youvrajsinghgaur3 Рік тому +1

    Plz Plz plz tell how to save this model in .h5 format!!!!!!!

  • @EliseGreen-tz2qe
    @EliseGreen-tz2qe 5 місяців тому

    Thank you awesome video very helpful!

  • @Paattiil
    @Paattiil 3 роки тому +1

    hi make a video on anamoly detection. using python on time series data. to detect node tampering

  • @kapedalex1996
    @kapedalex1996 2 роки тому +2

    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 Рік тому

      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/

  • @clotildamariamathias7416
    @clotildamariamathias7416 2 роки тому

    I want to implement with Xception..... What changes should be done

  • @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 Рік тому +1

      Make sure you are using a number of neurons in softmax layer = number of categories

  • @danielsw7011
    @danielsw7011 2 роки тому +1

    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

  • @hiluu
    @hiluu 7 місяців тому

    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 5 місяців тому +1

      Try to add dropout and batch normalization and you can even try l2 and l1 regularizers too😊

  • @feignedganger
    @feignedganger Рік тому

    Is it possible to load zip file from local file explorer ? I am getting error no file found.

  • @AswathyG-wt3rq
    @AswathyG-wt3rq 8 місяців тому

    which version of TenssorFlow are you using here?

  • @marcospallone4515
    @marcospallone4515 2 роки тому

    Easy and effective! Top!

  • @mishkathossain2984
    @mishkathossain2984 Рік тому

    Vaya why didn't you applied anything on testing??
    How much the model works on testing dataset??

  • @Liz_871
    @Liz_871 Рік тому +3

    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 Рік тому +2

      Exactly, I just came here to comment on this, but you already did 😆

    • @OleksiiLysenko-b2w
      @OleksiiLysenko-b2w Рік тому

      Thanks a lot for your advice! You saved me!

  • @ganesha4281
    @ganesha4281 2 роки тому

    how we can use the transfer learning model for time series IMU Sensor data?

  • @jujuvil7013
    @jujuvil7013 3 роки тому

    Hi bro i couldn't download resnet50 in pycharm since it is asking for old version of python . What should i do

  • @nathanmcnaughton4468
    @nathanmcnaughton4468 Рік тому

    I have a dataframe with each row as an image and the columns as the pixels, would that be the same?

  • @sagnikdutta7206
    @sagnikdutta7206 9 місяців тому

    Question: Why do you need Flatten() even though the last layer of Resnet50 is a GlobalAverage layer?

  • @MG-tc5bo
    @MG-tc5bo Рік тому

    When I try this with other datasets I get "Shapes (None, 1) and (None, 4) are incompatible"

  • @milinduprabhash1216
    @milinduprabhash1216 5 місяців тому

    Thank you Bro that's very useful

  • @RAHULAGRAWAL-zo4iy
    @RAHULAGRAWAL-zo4iy 7 місяців тому

    @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

  • @morffisTFT
    @morffisTFT 3 роки тому

    Mr Hebbar, your content is amazing! Please continue with the great work!

  • @computer_vision
    @computer_vision 2 роки тому

    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 ?

  • @hiahpsasmlte7555
    @hiahpsasmlte7555 2 роки тому +1

    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

  • @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  Рік тому +1

      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 .

  • @chaymaebenhammacht1618
    @chaymaebenhammacht1618 2 роки тому

    Hello thaank u so much for this model but its not working on mu own dataset i dont know why exactly

  • @rahulvansh2390
    @rahulvansh2390 3 роки тому +1

    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 😊🙏🏻

  • @soroveakterkakon9165
    @soroveakterkakon9165 2 роки тому

    How can i implemented confusion matrix in this code?plz help me

  • @deniswahyu8806
    @deniswahyu8806 2 місяці тому

    thanks, very helpful

  • @waqasmazhar1260
    @waqasmazhar1260 2 роки тому

    Fab explanation✌

  • @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

  • @DivyasriJampana
    @DivyasriJampana Рік тому

    can u post how to plot confusion matrix for this code

  • @varungupta4126
    @varungupta4126 2 роки тому

    Hey how I can add my own custom dataset in this code

  • @shreearmygirl9878
    @shreearmygirl9878 3 роки тому

    Hi, Hebbar pl can u send th videos for creating our own dataset using satellite images fro classification

  • @adib1032
    @adib1032 2 роки тому

    Thanks for the content!

  • @shivammaheshwari1598
    @shivammaheshwari1598 2 роки тому

    Nachiketa, from where we can download pretrained weights ?

  • @puneetkaur7725
    @puneetkaur7725 Рік тому

    Hello sir , your website is unavailable, how i get code now??

  • @seme_K
    @seme_K Рік тому

    Please do a video on Densenet-121

  • @vivekrajeevv7164
    @vivekrajeevv7164 7 місяців тому

    Can you give the test accuracy

  • @sejalloya99
    @sejalloya99 2 роки тому

    need help with the confusion matrix!

  • @abhishekagarwal7752
    @abhishekagarwal7752 Рік тому

    code is not working. ( ValueError: Shapes (None, 1) and (None, 5) are incompatible)

  • @syedzoofa8711
    @syedzoofa8711 3 роки тому

    It's showing me the error at resnet_model.add(pretrained_model)

  • @personunknown58
    @personunknown58 3 роки тому

    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 роки тому +4

      set label_mode='categorical' in val_ds and train_ds

    • @tesnymeseddiki6573
      @tesnymeseddiki6573 2 роки тому

      @@AkshayRakate thanks

    • @abhishekbourai1832
      @abhishekbourai1832 2 роки тому

      @@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 ?

  • @NamanShah-m3h
    @NamanShah-m3h Рік тому

    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

  • @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 Рік тому +4

      ***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

  • @anirudhbmitta6597
    @anirudhbmitta6597 2 роки тому

    How to use two transfer learning models on a single model

  • @MySmithereens
    @MySmithereens Рік тому

    hello can anyone help me,
    i get error when i implement that code

  • @vyas8137
    @vyas8137 3 роки тому

    Bro could you make a video on 'complete roadmap for becoming computer vision engineer'?

  • @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")

  • @DrShaziaSaqib
    @DrShaziaSaqib 2 роки тому

    thank you awesome, God bless you

  • @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.

  • @anthonieschaap1625
    @anthonieschaap1625 Рік тому

    The code has error: "ValueError: Shapes (None, 1) and (None, 5) are incompatible"

    • @anthonieschaap1625
      @anthonieschaap1625 Рік тому

      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 Рік тому

      I got this exact error, thank you so much!@@anthonieschaap1625

  • @onewhoflutters4866
    @onewhoflutters4866 Рік тому

    Where can I reach you? I have some questions.

  • @durgaprasadkakarla5311
    @durgaprasadkakarla5311 Рік тому

    giving an error as name resolution in kaggle kernal

  • @Fkb032
    @Fkb032 Рік тому

    Thank you!

  • @rahul-kz6sc
    @rahul-kz6sc 8 місяців тому

    Why my model predict wrong

  • @clotildamariamathias7416
    @clotildamariamathias7416 2 роки тому +1

    ValueError: Shapes (none, 1) and (none, 5) are incompatible

    • @clotildamariamathias7416
      @clotildamariamathias7416 2 роки тому +4

      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

  • @talharauf3111
    @talharauf3111 2 роки тому

    Thankz Man

  • @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

  • @settaiwthsai
    @settaiwthsai 3 роки тому

    Nice work...missing the hair

  • @anthonynguyen2027
    @anthonynguyen2027 3 роки тому

    nice vid

  • @顏劭宇-j6v
    @顏劭宇-j6v 2 роки тому

    thanks❤

  • @kangqinyip2742
    @kangqinyip2742 Рік тому

    Dude can you send this the code in github

  • @hrissaspogs3297
    @hrissaspogs3297 11 місяців тому

    ya3tik douda mahlek ama zokomok l loss function 8alta

  • @nitisarath
    @nitisarath 2 роки тому

    validation accuracy not getting better help

  • @anuragkulkarni4991
    @anuragkulkarni4991 2 роки тому

    i need help

  • @jmg9509
    @jmg9509 2 роки тому

    1:18 - Imports

  • @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 роки тому +2

      Try adding label_mode = "categorical" as a parameter when initiating the train_ds and val_ds

  • @mishkathossain2984
    @mishkathossain2984 Рік тому

    How can I run This on My Leaf disease dataset??

  • @lauris2132
    @lauris2132 7 місяців тому

    Thank you!