Build an image classifier (ML Zero to Hero - Part 4)
Вставка
- Опубліковано 21 вер 2024
- In part four of Machine Learning Zero to Hero, AI Advocate Laurence Moroney (lmoroney@) discusses the build of an image classifier for rock, paper, and scissors. In episode one, we showed a scenario of rock, paper, and scissors; and discussed how difficult it might be to write code to detect and classify these. As the episodes have progressed into machine learning, we’ve learned how to build neural networks from detecting patterns in raw pixels, to classifying them, to detecting features using convolutions. In this episode, we have put all the information from the first three parts of the series into one.
Links:
Colab notebook →bit.ly/2lXXdw5
Rock, paper, scissors dataset → bit.ly/2kbV92O
This video is also subtitled in Chinese, Indonesian, Italian, Japanese, Korean, Portuguese, and Spanish.
Watch more Coding TensorFlow → bit.ly/2lytA4j
Subscribe to the TensorFlow channel → bit.ly/2ZtOqA3
I can't believe that's it! This series can't be finished already :o
Overall thank you Laurence Moroney!
You're welcome! I'm going to do a Z2H on NLP next! :)
Same feeling! --> Quality of teaching is THE BEST! we need more.
Please do more tutorials ❤️❤️
Every line you said was important and should be noted down as notes. Awesomeness. Long live Google.
@@laurencemoroney655 Please, create courses in your free time, Mr.Laurence. The ML community needs you so badly.
First, let me appreciate the intellect of the presenter. This is marvelous. second, I can't belief this topic, Machine Learning can be this simplified. My idea of Neural Network initially was a very complex subject that can't be understood. Now, I assimilated every bit of this. Thank you.
This course is not understanding machine learning. It's understanding an API that performs machine learning for you. Big difference. Actually understanding machine learning requires good understanding in statistics, linear algebra, and calculus.
I'm less than a week into Python after a year on JavaScript/Ember.js. Learned JS first because it was closest to HTML, CSS, etc. During that time I struggled mightily because I was always attempting to read technical papers about BERT, neural networks, etc. Became quite overwhelmed thinking I'd never be able to learn all the complex maths needed to perform the text analysis I've always dreamed of. Little did I know there were so many brilliant people who've already done the heavy lifting. I just need to learn how to call the libraries. Thank you for making these concepts so brilliantly accessible! I get it!!
That's wonderful! THanks!
You guys are doing awesome work for the humanity, We love you. Keep making these kinds of videos.
Thanks Vikas -- Cool Icon, by the way! :)
Thanks Laurence.👍
Life is so much better with simple explanations. Thank you.
That's great! Thank you! :)
I would like to see more lessons, please, thank you Laurence Moroney
This was a lot of fun and very informative. Note that the classifier does not work with images that do not come from this dataset. I took several cell phone pictures of scissors, several hands, and scaled to 150 x 150. They are all classified as paper - [[1. 0. 0.]]. Thanks for the videos and the notebooks.
Great lecture, thank you! for those who are looking the image augmentation code, it is done by the ImageDataGenerator class
Really explains everything...
Thank you Laurence, wonderfully high-quality training. I have the perfect real-world problem for this in my business.
Great!
Hi Prof. Laurence, you are a professor the way you teach... requesting you to create a series on application of deep learning within NLP. An intensive one.. thank you so much sir for such easy to follow and understand videos you created. God bless you.
Thanks Manoj. Just started a series on NLP (released today) so your timing is good.
Can't really do 'intensive' courses on UA-cam, but this should be a good primer. I also have an NLP course on Coursera that goes into a bit more detail, and we're working on another super-deep one with some Google researchers that will hopefully come out in the next month or so
Please keep going that awesome uploads, so helpful for us !! thank you :) !!
Thank you so much! :) Next I'll do one on NLP
Amazing Explanation !! Thank You so much Laurence Moroney!
Welcome! Glad you enjoyed! :)
Laurence... A modern-day hero. Thank you !
Ultimate solution to improve your CNN: gigantic training dateset
Explained superbly Laurence. Appreciate your efforts. Thanks.
Thank you Laurence. I really enjoyed following along.
Looking forward to more tutorials Laurence !!!
Thanks! Working on a Zero-to-Hero for NLP at the moment
It would be great if you keep posting those videos or even better create a series for more advanced. I loved those and learned a lot from the notebooks linked. Thank you!
I'm working on an NLP series next.
Excellent series, very informative. Hope more series like this to come in future
Thank you so much! I really appreciate the effort you took to make this series :)
Thank you for your time and effort, I have learned because of you
Amazing 👍🏻 thx for making it clear, simple and SHORT👏🏻
The best tf2.0 course ever! Super great job. Thanks Laurence
Thank you so much! :)
The codelabs associated with this course contain a legacy code. It was challenging to go through these examples
This is really excellent. Thanks very much, Laurence.
Very welcome, David! :)
great tutorials! i wish you'd do way more episodes, maybe perhaps in a longer format
There's the TensorFlow Specialization on Coursera that I teach for that purpose. Longer form doesn't work as well on UA-cam.
Excellent series, really well presented, thank you for the tuition Laurence.
My pleasure!
really great video! the content is so simplified and well-explained!
haven't ever seen a more amazing video !!
You earned the subscribe hit from a person who has never ever bothered to subscribe
It's really helpful for us if you provide full deployment model of ML to production level. Laurence moroney thank you for this video 😄
Check out my friend Robert Crowe's videos on this channel
pretty good tutorial, there were a few issues with keras but you can easily fix those by googling a bit,
as far as i noticed sometimes scissors comes out as 100% rock which is not ok lol
Thanks a lot for the series. You are a nice educator...
Thanks for spreading the knowledge 😊👍
Welcome!
Thanks Laurence Moroney.
Nice series! But it only touches the surface of deep learning, I hope there are more more in depth tutorials later.
In depth tutorials don't really work well on UA-cam. I'd recommend checking out the work we've done on Coursera for that :)
Please can you share your link to the cousera
@@mohammedamuhsinzambang30 www.coursera.org/specializations/tensorflow-in-practice
@@laurencemoroney655 thanks
I am gonna implement this for the Augmented reality application. thank you.
Good luck with it!
Good introduction Laurence. Thanks
Thanks!
Warmest thanks and greetings.
Thanks for the short video. You might have covered this in the other videos (parts 1 through 3), but what guidelines can you provide for network architecture? In other words, I believe you used 4 conv2d layers in this example. Why 4 layers vs. 6 layers? Just looking to get better at this facet of modeling. Thanks again for the tips/tricks.
It's a lot of trial and error. In my case I usually use enough layers in Convolutional Neural Networks to bring the image size 'down' after pooling to something quite small in order to make the dense layers fast. So, in this case my original 150x150 images ended up as lots of activated 7x7 ones
Awesome explanation sir. I was struggling to start with DL, i got my path by these videos thanks a lot... And when can we expect NLP session in python.
I'm working on an NLP Zero-Hero next. Super busy October, so I hope to film and publish in November.
@@laurencemoroney655 thank for your response sir. I am eagerly waiting for your videos...😊
Thank you laurence
This was an awesome but, weirtly, very short course. I loved it, Ilearned a lot but felt like the explanations sometimes could be more extensive. Anyway, thanks!
Oh great! I hope if you could explain more about NNet designing and activation functions
Anyway, Nicely Explained
@@nitinrai6093 Thanks! At some point I'll go into that, but in the meantime, I recommend Francois Chollet's book "Deep Learning in Python"
@@laurencemoroney655 #Thanks Downloaded 🙃
Great video. Would be good to also have examples for e.g. having one additional file per image containing the labels in some arbitrary format and/ or having mixes of labels as categories and floats.
Great stuff! Though, I missed the final step which is to convert the trained algorithm into TF lite so we can use it in a mobile app :-)
Haha, good point. Working on a TF Lite course at Coursera which covers some of that. Coming soon...
thank you!
imagine the work and resources in trying to create a dataset. xD but its good to know we can make ai that can only see something 28x28. we are now in the era of 8bit AI
I liked these tutorials! 😄
Hi Laurence, Thanks for these wonderful videos. I had an observation Upon executing the code for exercise 8 for Fashion MNIST dataset, Observing the following error
TypeError: '>' not supported between instances of 'NoneType' and 'float'
Please make a video on implement ML model from script to deployment. Small discription is also enough.
Check out Robert's TFX series
Here's the first video in the TFX series Laurence mentioned! ua-cam.com/video/Mxk4qmO_1B4/v-deo.html
thank you Laurence!
This is awesome! I hope to attend the upcoming O'Reilly Tensorflow World Conference and surround myself with great people! 😁👍
See you there!
Thank you for this wonderful content but how do i learn more?????
Thank you for the video. I have one question, how did you choose to have 4 layers of 64 64 128 128 convolutional layers and 4 maxpooling? I think there are 4 convolutional layers so there are 4 max pooling layer but I am not sure why 4 layers are selected for this example. Is there a guideline for this selection? Thanks.
Sir If the given Image does not belong to any of these classes how does machine respond to it?
Sir, can you please make me understand the significance of the last element i.e. 3 in the input_shape tuple. You may suggest more videos or a notebook to understand those stuff in more detail.
And thanks for the short series containing a huge amount of information.
Can anyone tell me where's the Jupyter Notebook of this video? Can't find it!
Thanks for this episode
Welcome!
If I had to create an Object Detection device using ML, would I have to re-train the machine everytime I switch said machine on?
Thanks for sharing. I also wonder where the notebook is.
I can't find the notebook link below... Can you reply the link for me?
Great work Sir
Thanks!
Muito bom, bora testar!
Obrigado!
How to decide how many convolution layers to add and how many filters to place in each convolution layer?
I have a question that is bugging for the past couple of weeks. How do I work with TFRecords data. I`m creating a dataset from within Earth Engine and exporting it as a TFRecord, images on a 256x256 format and I`m trying to create a classifier by feeding it to my neural net but I`m really confused on how to use the data that I exported on TFRecord format. If anyone can give me any explanation on how to use it, I`d appreciate it so much. Thx!
There's a TF Record codelab here -- take a look: colab.sandbox.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/load_data/tfrecord.ipynb
Hey Laurance, I copied the code from the notebook to my own jupyter notebook, and there it takes about 5 minutes per epoch, wheras on the colab notebook it takes a couple of seconds. how can this be?
Thank you Sir
Using CNN, are there ways to identify things in a picture that's in various shapes/resolutions?
Nice sweet and small Playlist, here I have to know about that the does Tensorflow have any Shape classification dataset, not handwritten drawings but actual images like circles, triangles and so on.... or else help with how to create the custom dataset.
Got lots of pictures of circles, triangles etc, and build a classifier. SHould be pretty easy and very similar to this.
The link for the dataset that the colab uses doesn't exist anymore. How else could I access the dataset?
This was a wonderful series.It is just that i am trying to run this on my jupyter notebook, and i am using my personal dataset of hand gestures like right_click, palm, left_click. My directory looks like this
Dataset-->right_click-->seq_01= images, and so on like this but when i run the exact code you mentioned. I get an error on the last line i.e history = model.fit_generator(train_generator). The error is as follows
InvalidArgumentError: logits and labels must be broadcastable: logits_size=[32,3] labels_size=[32,2]
[[node categorical_crossentropy/softmax_cross_entropy_with_logits (defined at :1) ]] [Op:__inference_train_function_1195]
Function call stack:
train_function
kindly help.
i am trying with a different data set where train data has 27 images each in Train/bag, Train/bat, Train/bathtub while validation/test data has 9 images each in Test/bag, Test/bat, Test/bathtub. I am getting below error
any suggestion what could be root cause of below error ->
InvalidArgumentError: logits and labels must be broadcastable: logits_size=[81,3] labels_size=[81,4]
[[node categorical_crossentropy/softmax_cross_entropy_with_logits (defined at :61) ]] [Op:__inference_train_function_2287]
Function call stack:
train_function
on below line of code->
history = model.fit(train_generator, epochs=25, steps_per_epoch=20, validation_data = validation_generator, verbose = 1, validation_steps=3)
Hey Laurence, the code you provided has been training for over 4 hours now, and is still at epoch 1. Why is that?
My Ubuntu has one 1080ti and it took about 64 seconds for one epoch. Also I've noticed that adding Conv2D will dramatically increase training time, comparing to previous Dense only networks. If one epoch takes you 4 hours, I think very likely that you are training on a CPU.
Thank you. Where do I find the videos for Tensorflow 2.0.? Hope more videos to come, with advanced networks like GANs, Reinforcement learning or putting this image recognition model on a cellphone.
Stay tuned to this channel, use tensorflow.org, check out Francois Chollet and Aurelien Geron's books, and check out my Coursera courses :)
Where I will get demo code which converts text present in image into actual text ?
Thx! good lecture
Welcome!
Sir, please help me to build image classification codes to classify in single scene of video into image and different kind of activities in particular scene
How can I use my own dataset (images)? I mean from my local drive.
I am unable to download the zip file. I think they are removed .Please help
Hi guys,
I'm trying example notebook and I get this error
uploaded = files.upload()
Upload widget is only available when the cell has been executed in the current browser session. Please rerun this cell to enable.
MessageError: TypeError: google.colab._files is undefined
Some piece of advice?
Thanks
So are these updated for Anaconda python with pilow vs pil on python3?, these tutorials are super helpful to get going in this subject. Thanks for the series.
As an update ( might help someone else ). I was able to get the model to work with pillow I added 'from PIL import Image', I was then able to take the compiled model and load it into a python example which uses a webcam ( 720p ) via OpenCV and get the same results as the image loader.
If there is any video or can you make any video on Neural network with full explanation of basics like convolution, Kernal, padding, strides, channels, max pooling...
This series covered most of that...
Thank you!
Welcome! :)
Thanks very much. You are a Rose.
very nice. thank you :)
Welcome!
Please put these tutorials in a playlist
Could you make a video on how to segment an image? That is, the environment is removed and only the outline of an animal or object remains. Thank you...
Don't have anything like that in the pipeline, sorry. But what I am working on is tutorials to show bounding boxes around classified items in images if that's helpful.
@@laurencemoroney655 Excellent if you train the model from scratch, it will help us a lot, thanks. Greetings from Colombia
Sir is it possible to train InceptionV3 with my classes and get output as my classes and previously trained classe together? if I have 5 classes and InceptionV3 has 100 classes then I want my output as 105 classes
You can recreate the inception architecture and train it from scratch with all the classes you want but I would require a huge computing power and a vast dataset.
I would use inception for the classes it was trained and for new classes I would create a little network using transfer learning. Then, I would set a threshold for changing from Inception to the new classifier. I mean, if the max class probably of inception for an image is 0.3 I would send it to the second classifier
yes, good work ... more tutorials , maybe training a neural network to generate art or music 🧠🤖
Check out the Magenta project
Thanks
You're welcome, Ash!
How can I enclose what the model said in a rectangle? Thank you..
Take a look at models for 'Object Detection' which return the parameters for a bounding rectangle.
Mr. Narrator, you never explain the optimisers, why is that? Even the codelabs do the same. Nobody even says they will be covered later or links the documentation. Can we create our own optimizers? I need answers,... Everybody does, everybody should
When I tried to use model.predict(img, batch_size=10) in which I inputted my own image, it returned : IndexError: list index out of range. It would be great if someone could help me out.
Your input data has the dimensions that could not fit into the first layers of the MODEL. (You will have to use the images of exactly similar dimensions as are defined in the Input Layer you built.)
Hi, thanks a lot for this understanding of NN . Could you please guide me how to train a model for images of persons and recognize the faces and match them with the existing db. As also, if possible also detect the emotions of humans in videos. Would be very helpful to me please. Thanks a lot again!
I don't really like to do facial recognition, sorry.
For emotions -- it's very similar to rock/paper/scissors. Get labelled images of 'happy', 'sad', whatever, and organize them in subdirectories etc.
Can I do this without tensorflow
You could, but it might be much more difficult ;)
I’ve watched all 4 videos and i still have no clue how to do machine learning. Yes I understand the concepts more, but it shouldn’t be titled “zero to hero”
I'm sorry, but this explanation of over fitting and data augmentation makes no sense to me: If you only have ever seen hiking boots, then flipping images of hiking boots (i.e. data augmentation) wouldn't make you any better at detecting high heels ?
How do we find the problem required deep NN not 1 hidden NN?
To be honest, there's a lot of trial and error and/or reading papers that discussed how they did it.
What if I don't want to use your dataset, how do I load my own?
Sure, you can do that...just arrange your images in subdirectories just like I did.
I was disappointed when you said that this is the fourth and final video in this series of zero to hero with tensorflow.
What's coming up next? Plan something along the lines of LSTM and GRU.
Gonna do some NLP stuff, so LSTM will be in there for sure