Building a Neural Network with PyTorch in 15 Minutes | Coding Challenge

Поділитися
Вставка
  • Опубліковано 5 лют 2025
  • What's happening guys, welcome to the third episode of CodeThat!
    In this ep I try to build my first neural network in PyTorch...seriously the first time I even dug into their documentation was yesterday! Anyway you know the rules I have to get it done in 15 minutes, no doco or stack overflow and a gift card to you guys if I fail.
    Will I make it in time???!
    Get the Code: github.com/nic...
    Oh, and don't forget to connect with me!
    LinkedIn: bit.ly/324Epgo
    Facebook: bit.ly/3mB1sZD
    GitHub: bit.ly/3mDJllD
    Patreon: bit.ly/2OCn3UW
    Join the Discussion on Discord: bit.ly/3dQiZsV
    Happy coding!
    Nick
    P.s. Let me know how you go and drop a comment if you need a hand!
    #machinelearning #codingchallenge #gradientdescent

КОМЕНТАРІ • 181

  • @andyweb7779
    @andyweb7779 Рік тому +36

    The amount of calculating a Terminator has to do just to work out if someones boots, clothes and motorcycle will do him is wild lol.

    • @FleiX664
      @FleiX664 11 місяців тому

      Imagine Skynet.

  • @mesembria95
    @mesembria95 2 роки тому +83

    Nick, we appreciate your work so much. The way you offer your knowledge so graciously, you're helping so many people who are newbies in the field.

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому +21

      Knowledge is one of the few things you can give away and not lose, so why not share?! Thanks so much for checking it out @NeonCone!

  • @baguette184
    @baguette184 11 місяців тому +2

    youre literally the best, i genuinely appreciate all the work youve put out for us. you have no idea how much help your channel has given me, without you i wouldve been completely lost in everything, thank you so much, i love you 😭♥

  • @sadra2637
    @sadra2637 2 роки тому +22

    Good job man. I feel more and more in love with ML and DL as I watch your videos. Keep it up. 👊

  • @thealmighty9
    @thealmighty9 2 роки тому +13

    Wow this was so good! I can't believe you still take time to explain things throughout the challenge lol. I am loving this series, super fun :D

    • @jinparksoul
      @jinparksoul Рік тому

      "I can't believe you still take time to explain things throughout the challenge". I can't literally can't believe it either. Drink a shot every time he typed a line with no explanation and you'll be dead half way through the video. There is no freaking way a beginner understands wtf just happened by the end.

    • @thealmighty9
      @thealmighty9 Рік тому +2

      @@jinparksoul This video isn't a tutorial for beginners though, it's a challenge he made for himself. If you want a tutorial look through his countless videos where he explains every little thing that even you can understand.

    • @jinparksoul
      @jinparksoul Рік тому

      @@thealmighty9 Nonetheless its still true that most of the lines are written without any explanation regardless of who it is targeted towards in contradiction to what your comment "you still take time to explain things" implies. Although not really done here taking time to explain everything is typically something you would not need to do when you target experienced AI researchers and pytorch devs.

    • @thealmighty9
      @thealmighty9 Рік тому +1

      @@jinparksoul So there is only explain everything or nothing? Only beginners and experienced professionals? "Take time to explain things" is not saying "takes time to explain every little thing" I'm not sure what you're trying to get at here, I don't know if you're upset that he doesn't explain enough or upset that he explained anything at all.

  • @mansoorbaig9232
    @mansoorbaig9232 Рік тому +12

    Great explanation of all that is need in 15 min. Keep up the good work, your tutorials are a great help to DS community.

  • @petegrapentien4147
    @petegrapentien4147 11 місяців тому +1

    This is the most fun I've ever had watching a coding video

  • @gustavojuantorena
    @gustavojuantorena 2 роки тому +66

    This is awesome Nick! I'm amazed by the way you can also explain while coding really fast 😂

  • @primeq
    @primeq 9 місяців тому

    great job Nick. It's impossible to overstate how powerful speed, clarity are when it comes to learning/teaching. 🌟

  • @erfanelmtalab1615
    @erfanelmtalab1615 2 роки тому +7

    nick you are my hero for real , thank you for your tutorials man !

  • @qybl
    @qybl 5 місяців тому

    So entertaining, yet so educational. this format is awesome! Thank you Nicholas

  • @gabrielj.9028
    @gabrielj.9028 2 роки тому +5

    Great job! Your videos have really helped me with project ideas and application examples. Looking forward to seeing more!

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому

      YESSS, go getem @Gabriel!! Plenty more to come.

  • @Markom3D
    @Markom3D Рік тому

    Hey, i might have to take this format for my live streams…. Subscribed good sir

  • @nicky6917
    @nicky6917 Рік тому +2

    This is the longest 15 min ever in my life

  • @ganesh-uc2ft
    @ganesh-uc2ft 10 місяців тому

    This was fun! Thank You for the amazing tutorial.

  • @AsherNoor777
    @AsherNoor777 Рік тому

    Yo! that is EPIC!
    Super intense! and SUPER helpful! thank you so much for sharing, this is giving me hope for my ML project for sure!
    And yes, I TOTALLY take this as a Win.
    Amazing job!

  • @papakamirneron2514
    @papakamirneron2514 11 місяців тому

    Finally, a tutorial for just the useful stuff

  • @omarkhamismohamed9563
    @omarkhamismohamed9563 2 роки тому

    Super underrated .. Amazing explanation during challenge !!!!

  • @MatthewOrbuch
    @MatthewOrbuch 2 роки тому +1

    If this were not a rushed challenge but a proper tutorial explained a bit more calmly, it would be pure gold

    • @sanketdongre369
      @sanketdongre369 Рік тому +1

      Put the code in chatGPT and ask for explanation.
      😇

  • @TheCopernicus1
    @TheCopernicus1 2 роки тому +3

    Awesome content as always mate! well done :)😀

  • @vincentmarkiet
    @vincentmarkiet 2 роки тому +3

    Awesome stuff. Keep at it mate.

  • @gadmuhirwa5226
    @gadmuhirwa5226 Рік тому

    oohh my God you made proud and happy you build my confidence brother @ Nicholas I can't stop laugh for your celebration

  • @choz8358
    @choz8358 Рік тому

    Thanks for the content, as a newb I learned a lot here 👍

  • @dasamlan9874
    @dasamlan9874 2 роки тому +4

    Great vid. I started ML a year ago and I could understand approx 70-75% of the vid.... can u do a vid on audio processing or provide some resources for the same. Audio processing, noise classification and similar stuffs.
    And once again a BIG thank u for these vids.. really helpful!!

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому

      Heya @Das, check this out: ua-cam.com/video/ZLIPkmmDJAc/v-deo.html

    • @dasamlan9874
      @dasamlan9874 2 роки тому

      @@NicholasRenotte once again.. Thanx a lot. 😁

  • @nerualbrain
    @nerualbrain Рік тому

    Love this video
    It actually helped me start using pytorch

  • @anshverma2820
    @anshverma2820 2 роки тому +1

    Thanks Nick! That was an amazing video.

  • @bguerrae
    @bguerrae Рік тому

    That was incredible! thank you so much for making it look so easy to implement. you are great!

  • @rverm1000
    @rverm1000 Рік тому

    Glad you got it deploy. No one seems to get that far

  • @irugal8964
    @irugal8964 2 роки тому +2

    😎 We always appreciate your content Nich

  • @saleemmuhammed5133
    @saleemmuhammed5133 Рік тому

    This is what I exactly wanted.. Awesome stuff!!

  • @lakshman587
    @lakshman587 2 роки тому +2

    So you won!!
    Congratulations!!!!

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому +1

      I have never written 50+ lines of code so fast in my life!! Thanks a mil @Lakshman. Was looking close towards the end there!!

    • @lakshman587
      @lakshman587 2 роки тому

      @@NicholasRenotte Noice!
      You did it!!

  • @philtoa334
    @philtoa334 2 роки тому +1

    Great ! but...
    This time I especially learned that I could have bad thought for you . For a gift card ... 🤣

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому

      LOL I think the code that series isn’t ending anytime soon. might just need to start making some ridiculous challenges.

  • @ChrisOndrovic
    @ChrisOndrovic 10 місяців тому

    Man awesome video, do you have or could you do one doesn't have to be a timed coding challenge but instead if you want to create your own dataset as opposed to using an existing one

  • @billal2731
    @billal2731 10 місяців тому

    I can finally ad Machine Learning to my resume

  • @armaaanziyad2772
    @armaaanziyad2772 2 роки тому +1

    Nick amazing work you really are a pro!

  • @sebastianrothe
    @sebastianrothe 2 роки тому +1

    awesome & fun , at least if you don't try to follow typing :) thx alot

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому

      LOL, yeah it was a little fater than my usual pace

    • @sebastianrothe
      @sebastianrothe 2 роки тому

      @@NicholasRenotte but it was Fun trying :)
      Maybe you can do a series like this
      From tiny world problem to live solution?
      That would be cool to See the process and thoughts

  • @NanoCreator
    @NanoCreator 2 роки тому +1

    This is a good teaching!!! you are great!!!

  • @Warley.Araujo
    @Warley.Araujo Місяць тому

    Great Video bru!!

  • @MichaelMacedoDiniz
    @MichaelMacedoDiniz 2 роки тому

    Very nice content, congratulations !!!!

  • @JasR-b2r
    @JasR-b2r 5 місяців тому

    I am brand new in learning python code and neural nets etc and I feel the exact same way as you did @ 9:45 LOL

  • @gplgomes
    @gplgomes 2 роки тому +2

    Nocholas, you are the guy.

  • @einsteinsboi
    @einsteinsboi 2 роки тому +1

    Legend! That was epic!

  • @mishmohd
    @mishmohd Рік тому

    11:17 don’t u need to put it in eval mode when predicting and train mode when training?

  • @justinbenavidez1985
    @justinbenavidez1985 Рік тому +1

    great video and amazing coding!!

  • @harshraithatha
    @harshraithatha 2 роки тому +2

    Hey Nick, I have sensitive data in my dataset. I need it to train my model. But also want to mask it. What to do?

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому +2

      I deal with this a lot at work, check with your privacy policies but the model itself won't contain the raw data just what the NN has learned.

  • @mahsakhoshnoodi2972
    @mahsakhoshnoodi2972 2 роки тому +1

    Nice challenge 🤩

  • @toni3124
    @toni3124 2 роки тому +1

    Love your vids! could you maybe make a video about a TTS system based on the LJ Speech Dataset?

  • @sitrakaforler8696
    @sitrakaforler8696 2 роки тому

    Dam dude !!!!!!!!!!!!!!!!!!!!!!!!! You are wild ! Bravo

  • @dactoanho6026
    @dactoanho6026 9 місяців тому

    Thank you very much for your video. it's very helpful

  • @neilrenaud5962
    @neilrenaud5962 Рік тому

    Job well done .Way to go

  • @OvettaSampson-vz4en
    @OvettaSampson-vz4en 11 місяців тому

    This was fun to watch.

  • @julianchambrier2401
    @julianchambrier2401 2 роки тому +2

    Good job and Congratulations ! Is it possible to make a video on lip sync with Tensorflow from a video file and a text/audio file generating a deepfake? For example a video of you with speech of Martin Luther King (with your voice) ?
    I think it could interest a lot of people

  • @johnnovotny4286
    @johnnovotny4286 6 місяців тому

    well done, appreciated

  • @robotbugs
    @robotbugs 3 місяці тому

    When I did it with the same code, the loss went down and then back up again - why is that?

  • @sergioquijano7721
    @sergioquijano7721 2 роки тому

    Shortcut of the video?
    Toggle/Hide command line inside VSCode: ctrl + J (command + J in mac) Hope you remember my shortcuts

  • @ajaykumar-rh2gz
    @ajaykumar-rh2gz 2 роки тому

    Amazing bro love the way teach

  • @murataavcu
    @murataavcu 2 роки тому +1

    That was truly amazing

  • @fizipcfx
    @fizipcfx 2 роки тому +3

    Do you plan to make another streams.

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому +1

      OFC, normally aim for two a week. This week was a bit of an exception.

    • @fizipcfx
      @fizipcfx 2 роки тому +1

      @@NicholasRenotte i got you, thanks for the reply

  • @krale9970
    @krale9970 5 місяців тому

    Csn you tell me on which learn platforms i can learn this clearly , because for a beginner I dont know what you write in general there . Where should I start to beginnt with to understand this ? Thank you for help in advance

  • @Ragul_SL
    @Ragul_SL 11 місяців тому +1

    why are we giving (1,32,(3,3)) in conv2d and then (32,64,(3,3)) , how is it decided? can someone explain

  • @chiragparmar3678
    @chiragparmar3678 Рік тому

    one question i have is why did u not defined your yhat as clf.predict(x) instead you took only clf(x)

  • @GX-uq1hm
    @GX-uq1hm 2 роки тому

    Nicholas, what monitors do you use there for coding? your workplace looks fantastic !!

  • @domillima
    @domillima 7 місяців тому

    what rig do you have for your two curved monitors? :D

  • @cagataydemirbas7259
    @cagataydemirbas7259 2 роки тому +2

    Hi, Im confused about cross validation. I looked videos they just use cross_val_score. I want to train data using cross validation and predict test daha how can I do it with cross validation. I want train cross validation and apply other datas how can i do it

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому

      Take a look at GridSearchCV in sklearn

    • @cagataydemirbas7259
      @cagataydemirbas7259 2 роки тому

      @@NicholasRenotte thank you. gridsearh tests some parameters after tested when we predict it uses best parameters ? or should we trained again by best parameters

  • @dsc40sundar18
    @dsc40sundar18 Рік тому

    preety amazing and big fan bro

  • @ravenbao3334
    @ravenbao3334 7 місяців тому

    i added another pic of a number 5, but I get this error - Given groups=1, weight of size [32, 1, 3, 3], expected input[1, 4, 28, 28] to have 1 channels, but got 4 channels instead; how can I make it work

  • @akandee
    @akandee 2 роки тому

    Great! Nicholas, thanks for sharing.
    Please how would one handle labels for classification, is this method foolproof to using LabelImg?
    Thanks.

  • @georgebassemfouad
    @georgebassemfouad 2 роки тому +1

    Hi I have a question.. what is the difference between tensorflow and pytorch

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому

      Similar, just different implementations TF: from Google, PT: from Facebook

  • @fairyroot1653
    @fairyroot1653 2 роки тому +1

    Can this model predict a sequence of numbers in captcha based images with digits and/or letters?

  • @vladrask
    @vladrask Рік тому

    Hi
    What VS Code theme are you using?

  • @MrSanselvan
    @MrSanselvan 2 роки тому

    Nice. The loss is increasing after the 3rd epoch. Is it good sign or bad ?

    • @danielpaul8734
      @danielpaul8734 2 роки тому +1

      It is not. Notice that the loss will be written in scientific notation after the 3rd epoch

  • @dubble_g
    @dubble_g Рік тому

    i have way more detailed images that are 128x128 and my NN is really bad at predicting, any tips what i should try to adjust besides the learnign rate?

  • @chiscoduran9517
    @chiscoduran9517 2 роки тому +2

    Hi, there is something that always confused me when working with conv networks, when you set the input layers in the nn.Linear(), you set it as 64*(28-6)*(28-6), why is that? how to know how many inputs and outputs you have to have when combining conv nodes with linear nodes, thanks great video :)

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому +4

      Look under the shape section here: pytorch.org/docs/stable/generated/torch.nn.Conv2d.html , the formula for calculating the height and width of the output are shown there (see Hout and Wout)

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому +1

      If I adjusted kernel size, padding or stride then the output shape would’ve changed accordingly @Chisco!

    • @nikitaandriievskyi3448
      @nikitaandriievskyi3448 2 роки тому +6

      If you have an image of let’s say 28*28 shape, and you pass it through a 3by3 filter with a stride of 1, and 0 padding, then ur output Shape would be: 28-3 + 1 by 28-3+1. The general formula for shapes after passing through a conv layer is ((input_shape +2*padding size - filter size) / stride) + 1 and then floor the results, so if it’s 3.5 you should round to the bottom, and you will have 3

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому +1

      What Nikita said is bang on!

    • @alexzan1858
      @alexzan1858 2 роки тому +1

      does pytorch have better/faster training compared to tensorflow?

  • @Michal2SAB
    @Michal2SAB 2 роки тому

    Why sometimes in accuracy, loss or whatever, one of these.. weird letters are present? Like a big number 0.12202020202-e545. Is it a problem? I found that to be confusing when predicting cause then the model inaccuratly predicts for some reason. Or perhaps it's not a problem and I just can't do simply "if accuracy > 0.5" in that case and THAT's the issue

    • @data-cta-english
      @data-cta-english 11 місяців тому

      No it is not a problem. Sometimes, when accuracy or loss or both are very small or big then it uses some words like 341e78

  • @shyamvai
    @shyamvai 6 місяців тому

    Pls explain the layers

  • @kamalakannank2741
    @kamalakannank2741 Рік тому

    Sir, Which document you read to write this code?

  • @adamblack2255
    @adamblack2255 2 роки тому +1

    IS it just me or is pytorch incredibly slow? Or am I misunderstanding the difference between this and a simple conv model with tensorflow/keras?

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому

      Hmmm, might need to do a comparison, tbh I've always used tf and never had performance issues. I didn't check how many samples were in the MNIST dataset for this though.

  • @adityashukla7849
    @adityashukla7849 2 роки тому +2

    Phenomenal!

  • @Spacesparx-h7q
    @Spacesparx-h7q 8 місяців тому

    Can you put a video about creating a AI for beginners including all mechane learning code like computer vision and more in one video

  • @jamesderiter4370
    @jamesderiter4370 Рік тому

    This dude is an irl character from bigmouth

  • @AndersAlsDieAnderen9
    @AndersAlsDieAnderen9 Рік тому

    Hey! Noob here:
    How does he comment multiple lines at 16:50? I always use ''' text ''' but that is just shit. How do I use # Infront of multiple lines at the same time.

    • @AllenThomasVarghese
      @AllenThomasVarghese Рік тому +1

      In VSCode, you select multiple lines and press Cmd + / (on Mac) to comment the lines out similar how to you do for a single line

  • @danny9642
    @danny9642 Рік тому

    How long does this take to train on a CPU and how can I optimise the code for it to train faster when using CPU?

    • @data-cta-english
      @data-cta-english 11 місяців тому

      It will triple the time that the gpu takes to train😅😅. You can just remove .to("cuda"). Now you understand it.

  • @nikaize
    @nikaize 10 місяців тому

    Easy !!!! Good job !!!

  • @SomebodythatIusetoknow123
    @SomebodythatIusetoknow123 10 місяців тому

    well played

  • @wgb-10
    @wgb-10 2 роки тому +2

    Good job Nick! Huge W. I was wondering as to why the loss was increasing after every 4 epochs, is it because a new batch is fed in to the model?

    • @NicholasRenotte
      @NicholasRenotte  2 роки тому +1

      Heya Wesley!! First one finally!! Probably getting to the point of overfitting but we're only printing out after every epoch not per batch. Loss bumps up in epoch 4 but still drops in epoch 8 (take a look at the power e-6 as opposed to e-5)

    • @wgb-10
      @wgb-10 2 роки тому +1

      @@NicholasRenotte Oh right. I completely missed the e-6 😂

  • @SimpliSave-h2o
    @SimpliSave-h2o Рік тому

    Could this be used to bypass Robot image validation ?

  • @hlslaughter3
    @hlslaughter3 10 місяців тому

    You've got 5 minutes to write hello world. Me: .... (◉▂◉ ) ..... (⊙.⊙) .... 5 mins later .... .... ¯\_(ツ)_/¯

  • @dadanny661
    @dadanny661 Рік тому

    Instead of printing the epoch loss, didn't you print the loss of the last batch of the epoch ?

  • @thiagosnelli138
    @thiagosnelli138 Рік тому

    Hi mate, I'm using the CPU, what should I type on line 57?

    • @thiagosnelli138
      @thiagosnelli138 Рік тому

      Well, answering my own concern, for the CPU guys:
      line 58 change for: clf.load_state_dict(torch.load(f, map_location='cpu'))

  • @Nmind-Nbody
    @Nmind-Nbody 2 роки тому

    Awesome Broo!!!😱

  • @dsc40sundar18
    @dsc40sundar18 Рік тому

    love from india and i am so happy

  • @HussainAyed-y3s
    @HussainAyed-y3s Рік тому

    This dude is an O.G.

  • @vinsmokearifka
    @vinsmokearifka 10 місяців тому +1

    Haha very interesting show

  • @sridhardornadula3913
    @sridhardornadula3913 2 роки тому

    hello bro...how to install pytorch in windows 11 or any alternate apk

  • @arjunbali2079
    @arjunbali2079 2 роки тому

    Hi Nicholas I started following your channel after your series on siamese network. Like this can we build multiple language OCR for example in a sentence there is english, hindi and german together written the classifier translate them all together and give us the result in the required language

  • @coolsai
    @coolsai 2 роки тому +1

    God level

  • @varadpatil3715
    @varadpatil3715 Рік тому

    How 64*(28-6)*(28-6) ? Also u didn't applied max pool , is it ok ??

    • @libeamlakbekele6345
      @libeamlakbekele6345 Рік тому +1

      This is because he didn't use padding on any of its conv layer, in general the formula is ⌊(n + 2p - k)/s⌋+1 where n=Image size, p=padding, k=Kernel_size, s=stride. So in his case
      image size = 28*28(n*n)
      For Conv1
      n = 28, p=0 which is the default value, k=3, s=1 which is also the default value,
      ⌊(n + 2p - k)/s⌋+1 = ⌊(28 + 2(0) - 3)/1⌋+1 = 26
      For Conv2
      n = 26, p=0 , k=3, s=1 ,
      ⌊(n + 2p - k)/s⌋+1 = ⌊(26 + 2(0) - 3)/1⌋+1 = 24
      For Conv3
      n = 24, p=0 , k=3, s=1 ,
      ⌊(n + 2p - k)/s⌋+1 = ⌊(24 + 2(0) - 3)/1⌋+1 = 22
      After this when you feed it to the fc layer you multiply the output channel by the size of the image which is 64*22*22
      That is how he got 64*(28-6)*(28-6)

  • @shishya
    @shishya Рік тому +2

    And you didn't skip commenting 😅

  • @undokat
    @undokat Рік тому

    6:08 i don't know what you are doing what are those?

  • @ifthikhanmohamed1681
    @ifthikhanmohamed1681 2 роки тому

    it throws a runtime error