Neural Network Python Project - Handwritten Digit Recognition

Sdílet
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

Komentáře • 137

  • @ruutjormun2262
    @ruutjormun2262 Před 3 měsíci +5

    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.!

  • @al.d9592
    @al.d9592 Před 2 lety +8

    This video is really, really good. Used it to resurrect my 20y old ANN skills. Will use this in my classes now!

  • @sachinkrao
    @sachinkrao Před rokem +4

    Totally underrated video, perfect for people getting started with Neural Networks!

  • @williamikennanwosu
    @williamikennanwosu Před rokem +1

    Thanks for a flawless video NeuralNine!

  • @GiorgioM.
    @GiorgioM. Před 2 lety +6

    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

  • @akshatdodhiya
    @akshatdodhiya Před 2 lety +1

    Your videos are really amazing!

  • @anchorbuster3452
    @anchorbuster3452 Před 11 měsíci +1

    really helped me a lot.
    Thank you so much😄😄

  • @danielrocha2521
    @danielrocha2521 Před 2 měsíci +1

    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

  • @anhurtjv
    @anhurtjv Před rokem +11

    I did everything as done here, and the performance of the network is terrible, even after increasing the number of epochs!

  • @AliAli-wi2ys
    @AliAli-wi2ys Před 2 lety

    i did this 2 years ago with live opencv drawing and detection
    thx a lot

  • @Zane_Ritchie
    @Zane_Ritchie Před 10 měsíci

    Hey, thank you so much for this video.

  • @masoon3373
    @masoon3373 Před 2 lety

    Great!👍 More videos like this ❤️

  • @GeoffryGifari
    @GeoffryGifari Před měsícem +1

    so with tensorflow keras we don't need to code the weights and biases from scratch?

  • @AlwinmathewP
    @AlwinmathewP Před 2 lety +4

    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?

    • @danielrocha2521
      @danielrocha2521 Před 2 měsíci

      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.

  • @HosseinOjvar
    @HosseinOjvar Před 8 měsíci

    Helpful video , thank you ;)

  • @GeoffryGifari
    @GeoffryGifari Před měsícem +1

    are there repositories out there where we can get training data?

  • @doktermaiskorn833
    @doktermaiskorn833 Před 2 lety +7

    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

  • @onuraydn7065
    @onuraydn7065 Před 2 lety

    but what if I want to know different hxw images????? this only works for 28,28.

  • @eclipsehunter
    @eclipsehunter Před 2 lety

    Awesome bro!

  • @marktellez3701
    @marktellez3701 Před rokem

    lol, that intro music on a topic like this :D

  • @alexdiaz4371
    @alexdiaz4371 Před 2 lety

    Awesome!!! Thanks

  • @hexyedev1336
    @hexyedev1336 Před 2 lety

    How could I train neural networks without a dataset? Like if I would like it to idk play a video game

  • @srirammk5678
    @srirammk5678 Před 8 měsíci

    I'm unable to evaluate the model, the error says they dont have same array size

  • @oingomoingo7411
    @oingomoingo7411 Před 3 měsíci +2

    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 ?

  • @bobvance9519
    @bobvance9519 Před měsícem +1

    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.

  • @sixteenth8871
    @sixteenth8871 Před rokem

    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

  • @muthurubant5812
    @muthurubant5812 Před 2 lety

    You are awesome broo🔥🔥🔥🔥

  • @brianfitzgerald6197
    @brianfitzgerald6197 Před rokem

    Amazing!

  • @kgcolor
    @kgcolor Před 2 lety

    Cool vid man, I want to get started, just curious as to what IDE you are using?

  • @aaronfroggatt9566
    @aaronfroggatt9566 Před rokem +3

    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.

    • @HaxeHere
      @HaxeHere Před 11 měsíci

      I have the same issue. The more I trained the data, the more inaccurate it actually got.

    • @BhanuPandey-hl9ql
      @BhanuPandey-hl9ql Před 7 měsíci

      got the same issue here, have you fixed it any leads?
      @@HaxeHere

    • @Splendisimo
      @Splendisimo Před 7 měsíci

      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'))

  • @MichaZawadzki-ku1dk
    @MichaZawadzki-ku1dk Před 8 měsíci

    Where did you download your training data and where was it loaded into your program? That is, I don't see any filename loaded...

    • @Nyo0
      @Nyo0 Před 8 měsíci +1

      the training data is part of the tenserflow library itself u dont need to download it additionaly

  • @karthikeyan.s557
    @karthikeyan.s557 Před 2 lety

    Awesome bro

  • @user-xu7wp1pr5p
    @user-xu7wp1pr5p Před rokem

    thank you very much , bro .

  • @mohamedalisahnoun8021

    is there a chance i can run a code that can transform text pdf , images, voices into a model for medical stuff

  • @abebuenodemesquita8111
    @abebuenodemesquita8111 Před 2 lety +2

    mine is super innacurate. could you please help?

  • @stefanlodders9521
    @stefanlodders9521 Před 2 lety

    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. :)

    • @user-qk1cu1nv2h
      @user-qk1cu1nv2h Před 2 lety

      why does the neural network immediately correctly determine the numbers without any training?

    • @pattyspanker8955
      @pattyspanker8955 Před rokem

      @@user-qk1cu1nv2h It was trained for 3 epochs with a standard dataset

  • @vishalshivhare1298
    @vishalshivhare1298 Před rokem +1

    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?

    • @purple_gemini
      @purple_gemini Před 6 měsíci

      was thinking same, fit(Xtrain).transform(Xtrain) and fit(Xtrain).transform(Xtest)

  • @AJain-18
    @AJain-18 Před 2 lety +1

    Nice video !!!

  • @itztoreveuwu3869
    @itztoreveuwu3869 Před 4 měsíci

    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?

    • @malikmodric7161
      @malikmodric7161 Před 2 měsíci

      i think you might need image segmentation , you'll find a video about it in this chanel

  • @NarangaravB
    @NarangaravB Před 11 měsíci

    You really helped me a lot. Thank you so much🤩

  • @vantrixfn
    @vantrixfn Před rokem

    AttributeError: module 'keras.api._v2.keras.models' has no attribute 'load'

  • @tanmaybohra8702
    @tanmaybohra8702 Před 2 lety

    can u tell the digits directory thing.. u just skipped that part]

  • @user-vn5gs2pb3j
    @user-vn5gs2pb3j Před 8 dny

    Is it will work for handwritten words or text?

  • @yadeen6828
    @yadeen6828 Před 7 měsíci +1

    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

    • @yadeen6828
      @yadeen6828 Před 7 měsíci

      if any one have idea about that so tell me

  • @rajm5349
    @rajm5349 Před rokem

    kindly explain banking projects or fraud manageent or loan projects

  • @s.aravindh6227
    @s.aravindh6227 Před 2 lety

    Nice video bro 👍👍👍👍👍

  • @jonathandlt1214
    @jonathandlt1214 Před rokem

    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.

  • @user-qd2gi8tq8m
    @user-qd2gi8tq8m Před 7 měsíci

    how to downlode data set which u used ?

  • @aravindputtapaka5147
    @aravindputtapaka5147 Před 11 měsíci +1

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

  • @johncheung4905
    @johncheung4905 Před rokem +3

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

    • @timo8693
      @timo8693 Před dnem

      Same Problem here

    • @timo8693
      @timo8693 Před dnem

      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

  • @theotrevalinet7560
    @theotrevalinet7560 Před rokem

    HI nice video ! Do you know how to analyse images that are bigger than 28x28px ?? Thanks ;)

    • @simplyylunar
      @simplyylunar Před rokem +1

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

  • @ayshasimra8048
    @ayshasimra8048 Před rokem

    I followed your code word by word still the result is showing error. Please help me!!

  • @giannhsp222
    @giannhsp222 Před 2 lety +1

    OMG.. I was in full screen mode and on 7:45 I thought someone hacked my computer! haha! It was scary!

  • @manzilkarmacharya1478
    @manzilkarmacharya1478 Před 2 lety

    Can we use raspberry pie with touch screen for input

  • @keshavgupta8819
    @keshavgupta8819 Před 2 lety

    Thanku so much bro

  • @williamikennanwosu
    @williamikennanwosu Před rokem

    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?

    • @williamikennanwosu
      @williamikennanwosu Před rokem

      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)
      '

  • @abhinavchoudhary6849
    @abhinavchoudhary6849 Před 2 lety +1

    Nice video

  • @areebaazhar28
    @areebaazhar28 Před 11 měsíci

    Sir imges not display when i run this code

  • @mahmoodjamshidian9525
    @mahmoodjamshidian9525 Před 2 lety

    vary practical

  • @Martin-iy8gd
    @Martin-iy8gd Před 2 lety +1

    Hi friend ! Nice video. Could you help me in making Handwritten Digits Recognition but using HMM?

  • @gitasaheru2386
    @gitasaheru2386 Před rokem

    Please make video Multi Layer Perceptron How To build With Manual Coding without tensorflow

  • @yacahumax1431
    @yacahumax1431 Před 13 dny

    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?

  • @NEXTLevelGISRSfitsalem

    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?

  • @onuraydn7065
    @onuraydn7065 Před 2 lety

    is this only works 28,28 ????

  • @rudrakshchamyal1275
    @rudrakshchamyal1275 Před rokem

    i am not able to load tensor flow

  • @Erik-fg9fk
    @Erik-fg9fk Před 9 měsíci

    which ide is this?

  • @morgoth4932
    @morgoth4932 Před 11 měsíci

    can i do handwritten character recog using this,just by changing the dataset?

  • @user-ku3rn7mk6l
    @user-ku3rn7mk6l Před 9 měsíci

    shouldn't we normalize the input image pixel values before predicting it

    • @robbyrthomas5623
      @robbyrthomas5623 Před 26 dny

      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.

  • @tharukaridmal3117
    @tharukaridmal3117 Před 2 měsíci

    Can you asist me to identify symbols from drawing using CNN. It will be much helpful for my project

  • @namo2943
    @namo2943 Před 2 lety +1

    Early, and love the video!

  • @mahdiabbasinourabadi8554
    @mahdiabbasinourabadi8554 Před 4 měsíci

    thanks

  • @recepbashir7216
    @recepbashir7216 Před rokem

    nice

  • @aarushkumar168
    @aarushkumar168 Před 2 lety +1

    Please can you make a video on automating social media with python?

    • @javali1678
      @javali1678 Před rokem

      he just uses others tools to make stuff that he doenst really understand. so dont expect much from him

  • @gagarinrout2034
    @gagarinrout2034 Před rokem

    Why the dense layer with '128' units ?

    • @javali1678
      @javali1678 Před rokem

      he just copied the value online, youtuber programmer modus operandi

  • @tanmaybohra8702
    @tanmaybohra8702 Před 2 lety

    cant download tensorflow

  • @AbhixSingh
    @AbhixSingh Před 17 dny

    Can you make this same video with alphabet instead of number ? Pretty pls

  • @ranaabdulsammad2004
    @ranaabdulsammad2004 Před 11 měsíci +1

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

  • @ujjwalkashyap8055
    @ujjwalkashyap8055 Před 2 lety

    Will u plzz provide source code for this ?

  • @amanpiyushsharma
    @amanpiyushsharma Před rokem

    can anyone help me the no module found name tensorflow

  • @MICOLO253
    @MICOLO253 Před 2 lety +1

    Hi, anyone knows which theme of PyCharm is this?

  • @Newb1eProgrammer
    @Newb1eProgrammer Před 8 měsíci

    predict function in line 31 isnt defined according to vscode, error message is " "predict" is not a know member of "None" ". help me

  • @JacobRutgersson
    @JacobRutgersson Před rokem

    How did you comment the whole section at 12:28?

    • @ea1766
      @ea1766 Před 10 měsíci +1

      crtl + /

  • @akhilbisht798
    @akhilbisht798 Před rokem

    Hey there is some problem in load_model() i cannot use predict or evaluate if i get my model from load_model() function

  • @a_lister242gaming7
    @a_lister242gaming7 Před 2 lety

    Anyone know what program he's coding this in?

  • @MUHUB
    @MUHUB Před 3 měsíci

    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

    • @robbyrthomas5623
      @robbyrthomas5623 Před 26 dny

      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

  • @unlimitediq1894
    @unlimitediq1894 Před 2 lety

    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.

    • @javali1678
      @javali1678 Před rokem

      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.

  • @soumyadeepchatterjee1807

    can you u upload the source code

  • @onuraydn7065
    @onuraydn7065 Před 2 lety

    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.

  • @1112vinu
    @1112vinu Před 4 měsíci

    Can anyone share the source code ?

  • @AJain-18
    @AJain-18 Před 2 lety

    First view, like and comment 😁😁

  • @Nohope__
    @Nohope__ Před 9 měsíci

    my AI thinks 3 is a 6. :(

  • @joeljohn2679
    @joeljohn2679 Před 2 lety

    Yo

  • @flashkachannel2756
    @flashkachannel2756 Před 2 lety

    Круто ❤

  • @saiei
    @saiei Před 4 měsíci

    errors

  • @AJain-18
    @AJain-18 Před 2 lety +1

    First

  • @rudrakshchamyal1275
    @rudrakshchamyal1275 Před rokem

    pls help

  • @deepakmahto678
    @deepakmahto678 Před 5 měsíci

    hi really waste of time ur code never works properly even though wrote exactly same code as u did

  • @tradermann
    @tradermann Před rokem +1

    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.

    • @javali1678
      @javali1678 Před rokem

      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!

    • @MathieuB06
      @MathieuB06 Před rokem +1

      @@javali1678 which one please

  • @shad491
    @shad491 Před 6 měsíci

    nice