Neural Network Python Project - Handwritten Digit Recognition
Vložit
- čas přidán 19. 08. 2021
- Today we use Tensorflow to build a neural network, which we then use to recognize images of handwritten digits that we created ourselves.
◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾
📚 Programming Books & Merch 📚
🐍 The Python Bible Book: www.neuralnine.com/books/
💻 The Algorithm Bible Book: www.neuralnine.com/books/
👕 Programming Merch: www.neuralnine.com/shop
🌐 Social Media & Contact 🌐
📱 Website: www.neuralnine.com/
📷 Instagram: / neuralnine
🐦 Twitter: / neuralnine
🤵 LinkedIn: / neuralnine
📁 GitHub: github.com/NeuralNine
🎙 Discord: / discord
🎵 Outro Music From: www.bensound.com/ - Věda a technologie
Had to sign in to say thank you. Breaking down each line is incredibly useful. I also love how you continually point out that there's areas for improvement and reference us to what may be classified as overkill. It gives an excellent gateway into machine learning by linking this seemingly simple explanation to actually recognised CNNs and FC layers etc.!
This video is really, really good. Used it to resurrect my 20y old ANN skills. Will use this in my classes now!
Totally underrated video, perfect for people getting started with Neural Networks!
Thanks for a flawless video NeuralNine!
Hi F, very useful video as always! when you can, could you make a video about voice recognition/transcription in Python like youtube autosubtitle. To eliminate background noises ... what would you do? Thx
Your videos are really amazing!
really helped me a lot.
Thank you so much😄😄
Why did we choose to use 128 neurons for our first Dense layer? I have always wondered what is the intuition that should be used for the number of neurons needed for a layer? Is it kinda just random
I did everything as done here, and the performance of the network is terrible, even after increasing the number of epochs!
i did this 2 years ago with live opencv drawing and detection
thx a lot
Hey, thank you so much for this video.
Great!👍 More videos like this ❤️
so with tensorflow keras we don't need to code the weights and biases from scratch?
I'm very new to this and have a small doubt when training the data we normalized the pixel values to be between 0 and 1, but when we are predicting using jpgs we dont normalize it, why is that?
I think the reason he normalized the pixel values to be between 0 and 1 is because as he said their values range between 0 and 255. Since this is a big range of numbers normalizing the pixel data would be most ideal as it would reduce the impact of spread on our model. However, when predicting the jpgs they only take on a value between 0 - 9 so label data cannot necessarily be as spread out as the pixel data can be, rendering it kinda useless to do so.
Again this is just my thought process. If some of my logic is incorrect, please don't hesitate to correct me internet.
Helpful video , thank you ;)
are there repositories out there where we can get training data?
great tutorial. how can i increase the accuracy. shoudl I just screw up the epochs. I tried this, but some digits like a angeled one or a 5 that get "recognized" as a 6 or a 3(as example). sorry for my bad english :D
same man
but what if I want to know different hxw images????? this only works for 28,28.
Awesome bro!
lol, that intro music on a topic like this :D
Awesome!!! Thanks
How could I train neural networks without a dataset? Like if I would like it to idk play a video game
I'm unable to evaluate the model, the error says they dont have same array size
am i the only one whos digits are not recognized ? The mnist data set works fine and gets recognized but my own digits no chance, why ist that ?
Bro just dissed his own handwriting
I got this error. Changing the extension of the model to keras solved it.
File "C:\Users\user\anaconda3\envs\main\Lib\site-packages\keras\src\saving\saving_api.py",
line 106, in save_model
raise ValueError(
ValueError: Invalid filepath extension for saving. Please add either a `.keras` extension for
the native Keras format (recommended) or a `.h5` extension. Use `model.export(filepath)` if you want to export a SavedModel for use with TFLite/TFServing/etc. Received: filepath=handwritten.model.
this might be a stupid question but it isn't obvious for me in the code. How is the output layer ordered? what I mean is how does index 0 directly map to value '0', index 1 to '1', etc. I also searched this up for letter recognition and they have 0-25 mapping in order to letters sequentially. maybe someone can explain
That is correct.
You are awesome broo🔥🔥🔥🔥
Amazing!
Cool vid man, I want to get started, just curious as to what IDE you are using?
Looks like pycharm, not sure though
pycharm
I followed this tutorial and it runs with similar loss and accuracy results to the video. My problem is when I make my own written numbers, the accuracy is usually less than 50%. I have tried playing around with the number of hidden layers, numbers of neurons, and number of epochs and I don't see any real change. What other likely places I could look to find a fix.
I have the same issue. The more I trained the data, the more inaccurate it actually got.
got the same issue here, have you fixed it any leads?
@@HaxeHere
Try replacing all of the model.add lines with this 😉
model.add(tf.keras.layers.Conv2D(32, (3,3), activation='sigmoid', input_shape=(28, 28, 1))) # The one in "(28, 28, 1)" is required or else it'll error out
model.add(tf.keras.layers.MaxPool2D((2, 2)))
model.add(tf.keras.layers.Conv2D(48, (3,3), activation='sigmoid'))
model.add(tf.keras.layers.MaxPool2D((2, 2)))
model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(500, activation='sigmoid'))
model.add(tf.keras.layers.Dense(10, activation='sigmoid'))
Where did you download your training data and where was it loaded into your program? That is, I don't see any filename loaded...
the training data is part of the tenserflow library itself u dont need to download it additionaly
Awesome bro
thank you very much , bro .
is there a chance i can run a code that can transform text pdf , images, voices into a model for medical stuff
mine is super innacurate. could you please help?
It is really helpful and all. Thank you. For me, there could be more illustration of what happens to our data after what command line. Often you just guess it, but you can not be sure, especially when you are not using standard python methods, as you just see the output. Like with neural networks itself. :)
why does the neural network immediately correctly determine the numbers without any training?
@@user-qk1cu1nv2h It was trained for 3 epochs with a standard dataset
Why did you normalise the train and test data separately. Shouldn’t we first normalise train data and then apply the same normalisation factor to test data?
was thinking same, fit(Xtrain).transform(Xtrain) and fit(Xtrain).transform(Xtest)
Nice video !!!
Amazing tutorial man, i'm a complete beginner and this is totally understandable and it's so awesome, i only have a question, what do i do if i want to use larger images, is it possible?
i think you might need image segmentation , you'll find a video about it in this chanel
You really helped me a lot. Thank you so much🤩
AttributeError: module 'keras.api._v2.keras.models' has no attribute 'load'
can u tell the digits directory thing.. u just skipped that part]
Is it will work for handwritten words or text?
Hi sir , if we give the image in which we give any paragraph so they can detect it
or not ,for example in image we give A ,so the they detect it or not
if any one have idea about that so tell me
kindly explain banking projects or fraud manageent or loan projects
Nice video bro 👍👍👍👍👍
Hi. Can someone help me to find my mistake. Where i can save the folder of image so that my programs will read directly to that folder. bcoz, it does not read the image number when i run the programs. really appreciate to someone help and enlighten me. tnx.
how to downlode data set which u used ?
I want a python code to convert handwritten image into plain text with accurate i have tried but i didnt got you can try it and show me..
I followed the video to the word, frame by frame. I got this "Mistake" before saving the model (before applying to self made numbers). The loss is 2.3, and the accuracy is 0.097. During the training though, all accuracies are over 90. Can anyone tell me what is the problem? Is there anything wrong with the test set? This is a great video. I just want to make it work !!
Same Problem here
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = tf.keras.utils.normalize(x_train, axis=1)
x_test = tf.keras.utils.normalize(x_test, axis=1)
# model = tf.keras.models.Sequential([
# tf.keras.layers.Flatten(input_shape=(28, 28)),
# tf.keras.layers.Dense(128, activation='relu'),
# tf.keras.layers.Dense(128, activation='relu'),
# tf.keras.layers.Dense(10, activation='softmax')
# ])
# model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# model.fit(x_train, y_train, epochs=10)
# model.save('project.keras')
model = tf.keras.models.load_model('project.keras')
loss, accuracy = model.evaluate(x_test, y_test)
print(f'Loss: {loss}')
print(f'Accuracy: {accuracy}')
That fixed my problem, you can try it out if you want to
HI nice video ! Do you know how to analyse images that are bigger than 28x28px ?? Thanks ;)
im not fully sure about this but you can try changing the numbers in the "model.add(tf.keras.layers.Flatten(input_shape = (28,28)))" so change it to be like "model.add(tf.keras.layers.Flatten(input_shape = (32,32)))"
I followed your code word by word still the result is showing error. Please help me!!
OMG.. I was in full screen mode and on 7:45 I thought someone hacked my computer! haha! It was scary!
Can we use raspberry pie with touch screen for input
Thanku so much bro
I'm at 14:04 and I'm getting the following error after loading the saved model 'logits and labels must have the same first dimension, got logits shape [32,10] and labels shape [25088]'. Is anyone getting the same error, I've researched it and it apparently has something to do with the loss function being sparse_categorical_crossentropy or categorical_crossentropy?
I found the problem and fixed it. I wrote 'test_y = tf.keras.utils.normalize(test_X, axis=1)
' instead of 'test_X = tf.keras.utils.normalize(test_X, axis=1)
'
Nice video
Sir imges not display when i run this code
vary practical
Hi friend ! Nice video. Could you help me in making Handwritten Digits Recognition but using HMM?
Please make video Multi Layer Perceptron How To build With Manual Coding without tensorflow
In line #8 you are loading data, but you dont specify any files. I dont see were you are creating the actual training data and testing data. All I see is at the end , you creating data to actually use the model. where is the training data?
Hi buddy, thank you for your useful videos. However, I am getting this error "NameError: name "keras" is not defined when I try to classify the datasets into training and test datasets. How can I solve this error, please?
is this only works 28,28 ????
i am not able to load tensor flow
which ide is this?
can i do handwritten character recog using this,just by changing the dataset?
how do i change the dataset
shouldn't we normalize the input image pixel values before predicting it
I think the reason he normalized the pixel values to be between 0 and 1 is because as he said their values range between 0 and 255. Since this is a big range of numbers normalizing the pixel data would be most ideal as it would reduce the impact of spread on our model. However, when predicting the jpgs they only take on a value between 0 - 9 so label data cannot necessarily be as spread out as the pixel data can be, rendering it kinda useless to do so.
Can you asist me to identify symbols from drawing using CNN. It will be much helpful for my project
Early, and love the video!
thanks
nice
Please can you make a video on automating social media with python?
he just uses others tools to make stuff that he doenst really understand. so dont expect much from him
Why the dense layer with '128' units ?
he just copied the value online, youtuber programmer modus operandi
cant download tensorflow
Can you make this same video with alphabet instead of number ? Pretty pls
hey can anyone help please i am writing this code in jupyter notebook how to import images in jupyter will the process be the same???????
please help
asap
Will u plzz provide source code for this ?
can anyone help me the no module found name tensorflow
Hi, anyone knows which theme of PyCharm is this?
Dracula theme
predict function in line 31 isnt defined according to vscode, error message is " "predict" is not a know member of "None" ". help me
How did you comment the whole section at 12:28?
crtl + /
Hey there is some problem in load_model() i cannot use predict or evaluate if i get my model from load_model() function
Anyone know what program he's coding this in?
Py charm
@@pandulathennakoon3826 Thank you!
To enable the following instructions: SSE SSE2 SSE3 SSE4.1 SSE4.2 AVX AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags. this is the error i had
This is not an error but a statement u can ignore, but if there is no output that probably mean program was not able to get the digits directory so check your path is correct or not, for me it was to include the directory name where the digits directory was stored
errors come up for every piece of code you write. I am unsure what wizardry you're doing to get it to work on your end. it always fails on mine and it pisses me off.
he doesnt really understand neural networks too, just using tensorflow, there are far better videos on the subject, just look around , these "programmer" youtubers really are the bad side of the platform, they gain massive viewers and they are junior at best.
can you u upload the source code
unbeliavable, no one before me not comment is this only works for 28,28. really unbeliavable. do you really understand what he mentioned ? I think you do not.
Can anyone share the source code ?
First view, like and comment 😁😁
my AI thinks 3 is a 6. :(
Yo
Круто ❤
errors
First
pls help
hi really waste of time ur code never works properly even though wrote exactly same code as u did
you don't explain stuff, you just keep adding layers and optimizers and metrics without explainin what any of those are or what they do. bad stuff.
he doesnt know the "stuff" too, he just wants to crap out a video so he gains money, youtuber programmer, what you expect, its a cancer on the platform. but there are many good youtubers that know neural networks, search for these and really learn it!
@@javali1678 which one please
nice