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.
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()`.
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.
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?
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
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
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?
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?
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?
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.
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/
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"
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.
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!
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.
@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
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 ?
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
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 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 .
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 😊🙏🏻
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
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 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'
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
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.
***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.
@@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.
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")
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")
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.
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
the most no-nonsense straight to the point video on resnet video, keep up the good work!
Very concise down to the point summary, no redundant words and tedious good-for-nothing introductions. Thanks!
I've been trying to implement resnet for days, finally this has helped me. Thank you so much :)
Do you know how to get an output or repreaentation of the extracted features?
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.
What a great resource! Thanks for explaining it soo well
Thank you very much, I've trying to implement ResNet for a long time, this video really helped me. Please upload more videos :)
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()`.
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.
Means a lot, thanks!
bro i learned this for 1 semester and you just explained it in 10 minutes....and i understand it. how
Thank you so much for the content! This really helped me understand how to fine-tune a model in one of my projects :)
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?
Thanks for this, it was very helpful. I just had to change the import lines to deal with a newer version of keras.
Your teaching is very good👍
Thanks for the video!! It was really handy for my project!!
You got a subscriber buddy. Very well....
Thanks Bhai kafi din se pareshan tha me Resnet ko le kr
Thank you for this! Wonderful explanation
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
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
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?
Thank you , Can you write a code in keras.application and the weights aren't 'imagenet' ?
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?
Same case brother I used efficientnetb3 for hand gesture classification but its initial accuracy is around 20 and rising so slowly any suggestions 😢?
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?
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.
please tell me how to get ROC curve when I implement my code in this pattern without doin train test split
this was so helpful, thank you so much!
Plz Plz plz tell how to save this model in .h5 format!!!!!!!
Thank you awesome video very helpful!
hi make a video on anamoly detection. using python on time series data. to detect node tampering
Keras wants you to use sparse_categorical_crossentropy. Otherwise there will be errors today
I was unable to make his code work until I saw your comment, thank you so much man!
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/
I want to implement with Xception..... What changes should be done
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"
Make sure you are using a number of neurons in softmax layer = number of categories
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.
the seed value makes sure that a certain pattern is used to select validation and training data
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!
Try to add dropout and batch normalization and you can even try l2 and l1 regularizers too😊
Is it possible to load zip file from local file explorer ? I am getting error no file found.
which version of TenssorFlow are you using here?
Easy and effective! Top!
Vaya why didn't you applied anything on testing??
How much the model works on testing dataset??
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.
Exactly, I just came here to comment on this, but you already did 😆
Thanks a lot for your advice! You saved me!
how we can use the transfer learning model for time series IMU Sensor data?
Hi bro i couldn't download resnet50 in pycharm since it is asking for old version of python . What should i do
I have a dataframe with each row as an image and the columns as the pixels, would that be the same?
Question: Why do you need Flatten() even though the last layer of Resnet50 is a GlobalAverage layer?
exactly I have also same doubt
When I try this with other datasets I get "Shapes (None, 1) and (None, 4) are incompatible"
Thank you Bro that's very useful
@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
Mr Hebbar, your content is amazing! Please continue with the great work!
Thanks a lot!
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 ?
is there a way to save my progress on training ? has anyone tried it with this architecture? and great video!
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
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.
You had me in the first half :)
@@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 .
Hello thaank u so much for this model but its not working on mu own dataset i dont know why exactly
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 😊🙏🏻
How can i implemented confusion matrix in this code?plz help me
thanks, very helpful
Fab explanation✌
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
J0
can u post how to plot confusion matrix for this code
Hey how I can add my own custom dataset in this code
Hi, Hebbar pl can u send th videos for creating our own dataset using satellite images fro classification
Thanks for the content!
Nachiketa, from where we can download pretrained weights ?
Hello sir , your website is unavailable, how i get code now??
Please do a video on Densenet-121
Can you give the test accuracy
need help with the confusion matrix!
code is not working. ( ValueError: Shapes (None, 1) and (None, 5) are incompatible)
soution = replace loss='sparse_categorical_crossentropy'
It's showing me the error at resnet_model.add(pretrained_model)
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.
set label_mode='categorical' in val_ds and train_ds
@@AkshayRakate thanks
@@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'
@@AkshayRakate bt it does not help for me.. still i have the same error...could u plz help me
@@ayeshakhatun3114 what is the error ?
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
Hii naman , did you find the solution to this ? I've got the same problem
@@dhruvil8 use sparse_categorical_crossentropy
@@hubertmsuya8071 it doesnt work
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.
***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.
@@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.
@@tony-iy5xf This. Anyone who have trouble should listen to this guy
How to use two transfer learning models on a single model
hello can anyone help me,
i get error when i implement that code
Bro could you make a video on 'complete roadmap for becoming computer vision engineer'?
Will try to make one on it soon
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")
What error are you getting in this
thank you awesome, God bless you
Can anyone can share this code to me because the link he provide cannot work or cannot access it saying site unvailabel
I have updated the github link in the video description.
The code has error: "ValueError: Shapes (None, 1) and (None, 5) are incompatible"
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")
I got this exact error, thank you so much!@@anthonieschaap1625
Where can I reach you? I have some questions.
giving an error as name resolution in kaggle kernal
Thank you!
Why my model predict wrong
ValueError: Shapes (none, 1) and (none, 5) are incompatible
Just replace loss='categorical_crossentropy' to loss='sparse_categorical_crossentropy'
It works fine 👍
model.add(Dense(number of classes, activation='softmax')) do this changes
Thankz Man
Can someone share the code for this tutorial I need it very badly
I have updated the video description with the source code link
Nice work...missing the hair
Thanks and yes, i miss them too
nice vid
thanks❤
Dude can you send this the code in github
ya3tik douda mahlek ama zokomok l loss function 8alta
validation accuracy not getting better help
i need help
1:18 - Imports
please solve the below error
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.
Kannada davna??
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
Try adding label_mode = "categorical" as a parameter when initiating the train_ds and val_ds
How can I run This on My Leaf disease dataset??
Thank you!