I am a non-IT, Mechanical Engineering Professional (27 Years in Manufacturing Industry) and very thankful for the wonderful way of teaching that I ever had in my life!.
I don't understand who are those people and what they thinking to dislike this of piece of treasure. Come on and show me what you can do better, instead of just being lazy/jealous and dislike the video. Go ahead Laurance Moroney and keep doing what you doing we all love you and Josh Gordon.
I do understand it somewhat -- and it's typically people who *already know* this stuff are critical of it being explained this way. In order to keep it simple, I'm trying to layer in concepts, but when they don't see those concepts explained in this video, they think that it is incomplete. That's something that we call 'Curse of Knowledge' at Google, and I'm doing my best to avoid it here. I'm sorry to the folks that don't enjoy it, but you aren't the target audience for this :)
Great tutorial and exercise. Just one note on the last exercise (exercise 8) with the following line: if(logs.get('acc')>0.9): Resulted in Error: TypeError: '>' not supported between instances of 'NoneType' and 'float' Quick google pointed be to change 'acc' to 'accuracy' as follows: if(logs.get('accuracy')>0.9): Then it works. Hope it helps my fellow students...
Ure super , I searched for these some doubts on that youtube, u be right person which u give correct knowledge, my sincere thanks to u by touching ure feets
Everything is explained nicely except why the middle layer is chosen to be 128. What if this middle layer was 32, or 300? From a mathematical perspective I understand that more functions likely results in better fitting, but how did you determine the ideal number to use? Also, what if we just skipped this second layer entirely?
Loss function - How good/bad the model did Optimizer - generate new parameters for the functions to do better Relu- Rectified linear unit Softmax - Picks the bigge at number in the set Model.predict
Softmax doesn't set largest to one. If you just want to get the one with highest probability you can choose from the values of z. Softmax returns probability of each class.
if u tried out the code in tensorflow 2.0, there are few changes tf.train.AdamOptimizer() => tf.optimizers.Adam() if getting following error: TypeError: cannot unpack non-iterable float object add metrics i.e. model.compile(optimizer=tf.optimizers.Adam(), loss='sparse_categorical_crossentropy', metrics='accuracy') or remove test_acc i.e. test_loss= model.evaluate(test_images, test_labels)
After watching this series, I can tell that machine learning is so easy and everyone with enough practice and passion can become a machine learning engineer!
I was following along with the code and when I tried to evaluate the test set with the model I got a type error:'float' object is not iterable should I cast it as an int? Great content by the way...
Isn't 5:50 argmax not softmax? Also, this course if fantastic! THanks for breaking down everything, unlike some other "beginner" courses that leave all the comprehension footwork to the student!
Hello Lawrence, Thank you so much for this series. I am new to Tensorflow and I need to use it to classify images, along with a matrix representation that represents a certain feature (analogous to XML files with Object Detection APIs) ... As I have got no idea where to start, which Tensorflow image classification script or framework would you use, if you were me?
Can someone explain to me why in the example code we are using this fashion dataset but it keeps referring to the "handwritten digits" we're trying to classify? Is this a mistake?
Does the Algorithm decides which number to assign to Ankle Boot? Or How we can assign a number to specific object? Although we know the number of outputs, I'm little bit confused on assigning numeric output value!
It doesn't. The person that created the dataset labelled each piece of data, so instead of labelling something 'ankle boot', they labelled it '6'. Then, when training, the NN is told, 'when you see these pixels, they're a 6', 'when you see these pixels, they're a 9', and it tries to figure out the rules that determine those mappings.
Hey Laurence, just to clarify, does the value 128 represent the number of hidden layers we are implementing in the neural network? Looking forward to more videos!
The 128 is the number of neurons in that layer, not the number of layers. The number of layers can be derived by counting the lines of code where we use a tf.keras.Layer(something)
But how do I know, how many layers and how many neurons I need? Is it just by testing and watching, if the machine is doing its job well, or is there a trick how to figure it out?
It's great to always use the same Datasets for learning, but I think I can learn quicker If I was shown how to create my own datasets and analyze them. Datasets should be called "Trainers"
I got a question. Why any library is imported as their initials? is this a rule in programming or ease of use? import tensorflow as tf? import numpy as np? why is that?
Hello Sir, Is it compulsory to write keras.layers.Flatten(input_shape=(28,28)) ??????? this code also work for me model = tf.keras.models.Sequential([tf.keras.layers.Flatten(),
Generally it should be structured the same as the training dataset -- so explore the format of that, and you'll have your answer. It differs based on how you train the model.
Thank you for sharing this videos with us. I have a question Laurence, if a had a reduced set, let us say 50 samples an 2 categories, it is worth it to increase the quality of the image or the deepness of the network to improve the accuracy score? Im my case the label comes from an expensive analysis and we are tryin to find a good aproximation using a CNN.
It would very much depend on the diversity of your samples. One technique to avoid overfitting, particularly with a small set is to look at Image Augmentation in Keras.
Great video! I noticed some typos in the exercises code - such as in the last exercise the callback's name doesn't match callback created (i.e. [callbacks] should be [myCallback()]). I hope that helps! Please keep the videos and exercises coming! :)
You need to add an accuracy metric: model.compile(optimizer = tf.keras.optimizers.Adam(), loss = 'sparse_categorical_crossentropy', metrics=['accuracy'])
The answer there is 'it depends'. My recommendation, before you understand them all, is to look at similar solutions that people have open sourced and start with the function choices they made. To learn more about different function types, and how they work, I'd recommend deeplearning.ai's specialization on Coursera taught by Andrew Ng. It was one of the primary ways I learned. :)
Not at all. I'm just trying to keep this as simple as possible by reducing the concept count. At the moment, we're at a very abstract high level where there's little difference between the two, and it would take a lot more detail before we'd need to get into the distinctiveness between them. Let's focus on teaching the concepts first so that we can understand the more advanced stuff as it appears.
Can you please guide us on "how to prepare your own custom images datasets for testing and training?" (like I have .png images what should be the method or ways to convert my dataset for a neural network using TensorFlow.) #AskTanserflow
A sensible teacher . Perfect for scientific teaching.Thanks a lot.
Thank you! :)
I knew this before, but now I feel like I am really learning it in practice, good teaching style
Thanks!
I am a non-IT, Mechanical Engineering Professional (27 Years in Manufacturing Industry) and very thankful for the wonderful way of teaching that I ever had in my life!.
Waiting for the next episode! Such a great series
Thanks!
Introducing convolutional neural networks (ML Zero to Hero, part 3): ua-cam.com/video/x_VrgWTKkiM/v-deo.html
I wish I would have discovered this series sooner!
Thank you!
Great video.
Last number of Table showing softmax at minute 5:54 should be 0.978 and not 9.78. These are probabilities and should sum to 1
Good point!
Laurence Moroney you’re most welcome :)
Oh I didn't know it was supposed to sum to 1. I thought it's just a random value...
@@laurencemoroney655 it is not Good point. All the numbers in the row totals upto 10 which is number of labels, you can check 9.78+0.22=10.
Thankyou so much for providing this material. We need tutors like you.
Thanks!
thank you to the whole team of tensorflow
I don't understand who are those people and what they thinking to dislike this of piece of treasure. Come on and show me what you can do better, instead of just being lazy/jealous and dislike the video.
Go ahead Laurance Moroney and keep doing what you doing we all love you and Josh Gordon.
I do understand it somewhat -- and it's typically people who *already know* this stuff are critical of it being explained this way. In order to keep it simple, I'm trying to layer in concepts, but when they don't see those concepts explained in this video, they think that it is incomplete. That's something that we call 'Curse of Knowledge' at Google, and I'm doing my best to avoid it here. I'm sorry to the folks that don't enjoy it, but you aren't the target audience for this :)
Great teaching! At last, after years of searching found a great tutorial for that topic! Keep on the great job..
Very excited and appreciative of this series. Doing a great job of simplifying a complex topic. Thanks again and can't wait for the next episode!
Thanks, Chris!
Great tutorial and exercise. Just one note on the last exercise (exercise 8) with the following line:
if(logs.get('acc')>0.9):
Resulted in Error:
TypeError: '>' not supported between instances of 'NoneType' and 'float'
Quick google pointed be to change 'acc' to 'accuracy' as follows:
if(logs.get('accuracy')>0.9):
Then it works. Hope it helps my fellow students...
Change to 'accuracy' and try.
Thank you very much!
Would be great if you could explain why 128 is perhaps a good value when having these 28*28=728 inputs and you want 10 categories at the end.
784
😊ol😊😊
Your job description should be: Make Hard Concepts Look Easy. Thanks so much.
Honestly, these videos are better than the codelabs,
Thanks!
Great video. Just one typo. Time 5:37 is 0.978 (not 9.78) which is a probability score where all those 10 numbers should add up to 1.
Ure super , I searched for these some doubts on that youtube, u be right person which u give correct knowledge, my sincere thanks to u by touching ure feets
Everything is explained nicely except why the middle layer is chosen to be 128. What if this middle layer was 32, or 300? From a mathematical perspective I understand that more functions likely results in better fitting, but how did you determine the ideal number to use? Also, what if we just skipped this second layer entirely?
At 4:00 in the video what does adjusting the 128 value do to the training model?
Why are there only 127 functions when there are 28x28 pixels?
Can you elaborate how exact 128 is ? From how it come in picture ?
Loss function - How good/bad the model did
Optimizer - generate new parameters for the functions to do better
Relu- Rectified linear unit
Softmax - Picks the bigge at number in the set
Model.predict
Good Episode.. You explained it a very simple way.
Thanks!
Softmax doesn't set largest to one. If you just want to get the one with highest probability you can choose from the values of z. Softmax returns probability of each class.
if u tried out the code in tensorflow 2.0, there are few changes
tf.train.AdamOptimizer() => tf.optimizers.Adam()
if getting following error: TypeError: cannot unpack non-iterable float object
add metrics i.e. model.compile(optimizer=tf.optimizers.Adam(), loss='sparse_categorical_crossentropy', metrics='accuracy')
or remove test_acc i.e. test_loss= model.evaluate(test_images, test_labels)
Thanks for the sharing, this series really help a lot !
Wonderful explanations! Looking forward to more videos!
Wonderful explanations! Looking forword to more videos.
Does anyone know why there are just 128 functions to give out a number? I mean why 128?
Really gave me the perfect outline for the computer vision. Thank you !!!
Thanks! :)
After watching this series, I can tell that machine learning is so easy and everyone with enough practice and passion can become a machine learning engineer!
I believe so! Thanks! :)
I just didn´t understand why the number 128.
It´s just a arbitrary number ?
Mostly, and it's up for experimentation. Find the smallest one that gives the best results.
I was following along with the code and when I tried to evaluate the test set with the model I got a type error:'float' object is not iterable should I cast it as an int? Great content by the way...
Which line specifically?
try to divide train_images and test_images by 225.0
train_images, test_images = train_images/255.0 , test_images/255.0
Will next episode explain why 128 neurons in the middle? thanks.
No, sorry. The right number for a given problem is something you need to figure out.
@@laurencemoroney655 all right. thanks for answering :)
I didn’t get these f values. What are they and why 0-127?
Thanks for the material Laurence. I'm looking forward to future videos.
Thanks Aaron! :)
Laurence Moroney! You are just Love..
Awesome! Couldnt find part 3, only to realise this is brand new:)
Thanks! Coming weekly
Isn't 5:50 argmax not softmax?
Also, this course if fantastic! THanks for breaking down everything, unlike some other "beginner" courses that leave all the comprehension footwork to the student!
Welcome! Argmax finds the biggest. Softmax normalizes them to add up to 1 and then finds the biggest.
Thanks Laurence, this is a great series, very informative.
Welcome! Glad you're enjoying!
Very good series(Love Machine Learning)
Thanks!
Where have you been this whole time Sir? Can't wait for the next episode!
Right here :)
why 128? I didnt get it, why it couldnt be just 100?
BEST TUTORIAL EVER....!!!!!!!!
Hello Lawrence,
Thank you so much for this series. I am new to Tensorflow and I need to use it to classify images, along with a matrix representation that represents a certain feature (analogous to XML files with Object Detection APIs) ... As I have got no idea where to start, which Tensorflow image classification script or framework would you use, if you were me?
Can someone explain to me why in the example code we are using this fashion dataset but it keeps referring to the "handwritten digits" we're trying to classify? Is this a mistake?
I love it! AI is super-amazing!
Does the Algorithm decides which number to assign to Ankle Boot?
Or How we can assign a number to specific object?
Although we know the number of outputs, I'm little bit confused on assigning numeric output value!
It doesn't. The person that created the dataset labelled each piece of data, so instead of labelling something 'ankle boot', they labelled it '6'.
Then, when training, the NN is told, 'when you see these pixels, they're a 6', 'when you see these pixels, they're a 9', and it tries to figure out the rules that determine those mappings.
if we have relu and softmax in each layer- where are the model parameters/weights that will be adjusted by the optimizer ?
The filter values in the convolutional layers, and the weights/biases in the 'Dense' ones
Any hints on how to install tensorflow without any errors?
Good explanation but how to determine 128 functions?
dayum these videos are cool and the codelabs too
Big Fan of yours sir
Completed your deep learning. ai courses
Rishi bhai deep learning. ai courses ki link share kar sakte ho
Rishi Sharma from coursera ?
Sir I understood the working of the function relu on the second layer, but why is it used there?
Hey Laurence, just to clarify, does the value 128 represent the number of hidden layers we are implementing in the neural network?
Looking forward to more videos!
The 128 is the number of neurons in that layer, not the number of layers. The number of layers can be derived by counting the lines of code where we use a tf.keras.Layer(something)
I couldn andrestand 128 and the the function f0 .. f127 how it works to get the 9 result
But how do I know, how many layers and how many neurons I need? Is it just by testing and watching, if the machine is doing its job well, or is there a trick how to figure it out?
Usually by trial and error, a neural architecture search, or just a good guess :)
It's great to always use the same Datasets for learning, but I think I can learn quicker If I was shown how to create my own datasets and analyze them. Datasets should be called "Trainers"
For images, you can just create subdirectories of images, and use these as your dataset. See the next video in this series for more details.
It's really helpful me in understanding the the concept
I got a question. Why any library is imported as their initials? is this a rule in programming or ease of use?
import tensorflow as tf? import numpy as np? why is that?
I think it's just convenience, short and easy to remember. You could call it anything you like (import tensorflow as xy)
Thanks for this Video. Now waiting for the next one.
Me too! :)
Does increasing the number of functions in the keras.layer.Dense make the neural network accurate?
It *can*, or it might be a waste of resources. That's something to experiment with.
Very clear. Great video
sorry, where is the code he says it is in the notebook below?
Outstanding series
Thanks, Rajan!
why u choose 128 functions ?
Hello Sir,
Is it compulsory to write keras.layers.Flatten(input_shape=(28,28)) ???????
this code also work for me
model = tf.keras.models.Sequential([tf.keras.layers.Flatten(),
following this current series of ML...!
Thanks!
Amazing video, it was well explained
Is my_images expected to be a numpy array or the array formed by reading an image using cv2 library of python? Please reply.
Generally it should be structured the same as the training dataset -- so explore the format of that, and you'll have your answer. It differs based on how you train the model.
Amazing expert & tutor, thanks..Awesome
Welcome, and thank you! :)
thanks for this great series
Welcome!
I think that not always a computer vision system is a machine learned system, right?
Thanks
Thank you for sharing this videos with us. I have a question Laurence, if a had a reduced set, let us say 50 samples an 2 categories, it is worth it to increase the quality of the image or the deepness of the network to improve the accuracy score? Im my case the label comes from an expensive analysis and we are tryin to find a good aproximation using a CNN.
It would very much depend on the diversity of your samples. One technique to avoid overfitting, particularly with a small set is to look at Image Augmentation in Keras.
cant wait for the next video!
Coming soon!
I did not understand the 128 part, why picking 128?
Great video! I noticed some typos in the exercises code - such as in the last exercise the callback's name doesn't match callback created (i.e. [callbacks] should be [myCallback()]). I hope that helps! Please keep the videos and exercises coming! :)
Thanks! Sometimes moving from code to slides stuff creeps in. Hopefully it's ok in the links.
Im currently learning python do I need to be good at maths to learn what you are teaching here?
I don't think so. I'm not particularly good at Maths.. :P
After running test_loss, test_acc = model.evaluate(test_images, test_labels), I got this error: TypeError: cannot unpack non-iterable numpy.float64 object
Does anyone know why?
You need to add an accuracy metric:
model.compile(optimizer = tf.keras.optimizers.Adam(),
loss = 'sparse_categorical_crossentropy',
metrics=['accuracy'])
TensorFlow rocks!
It does, doesn't it? :)
Is there a more basic ml learning videos? These r good ,but m cmpltly new with these
These are as basic as I could do! :) Try the first 1-2 chapters of "Deep Learning in Python" by Francois Chollet for a more fundamental description
So how does all this code look like when compiled
Cool! Very informative! If it was also about working with tensors on Google Cloud with your own pictures! I would really appreciate it!
Later I will show working with images that are downloaded as a zip file. It should be easy to adapt that.
1:07 - Ashuwashoo? What's that sir??
'What makes a shoe a shoe' - I didn't sneeze :)
great teaching style, Thank you...
to run this code which tool you are using??
R or Python ??
python
Thanks sir, it helps lot
hello Laurence pls how can i know which optimizer i have to choose and which loss? im so confused pls help me
The answer there is 'it depends'. My recommendation, before you understand them all, is to look at similar solutions that people have open sourced and start with the function choices they made. To learn more about different function types, and how they work, I'd recommend deeplearning.ai's specialization on Coursera taught by Andrew Ng. It was one of the primary ways I learned. :)
can we do the same with voice data???
Why not. Just series of numbers with label assigned. NN is agnostic to input nature.
How do people find all these photos on e.g shoes. He used 70 thousand images of them of course its not possible to collect them 1 by 1 right?
Are we no longer acknowledging the difference between ML and DL? Is DL now nestled within ML?
Not at all. I'm just trying to keep this as simple as possible by reducing the concept count. At the moment, we're at a very abstract high level where there's little difference between the two, and it would take a lot more detail before we'd need to get into the distinctiveness between them. Let's focus on teaching the concepts first so that we can understand the more advanced stuff as it appears.
You didn"t say what are those f0 - f127 functions.
This is wonderful.
where could I learn the code
Why did you specifically chose 128 functions
Same question
Moroney is a hero!
I'm trying... :)
Im another one who don't catch why 128 neurons in the middle layer. Great Video, thanks.
Why do we have 128 functions? Why 128?
Purely arbritrary. Test different values to get the best results.
Waiting for the next vid. Thx
On its way...
Can you please guide us on "how to prepare your own custom images datasets for testing and training?" (like I have .png images what should be the method or ways to convert my dataset for a neural network using TensorFlow.)
#AskTanserflow
Keep watching :)
Nicely done.
Thanks! :)