Real-World Python Neural Nets Tutorial (Image Classification w/ CNN) | Tensorflow & Keras

Поділитися
Вставка
  • Опубліковано 31 тра 2024
  • In this video we walk through the process of training a convolutional neural net to classify images of rock, paper, & scissors. We do this using the Tensorflow & Keras libraries. This is a follow-up to the first video I posted on neural networks.
    Introduction to Neural Nets: • Introduction to Neural...
    Link to my code (github): github.com/KeithGalli/neural-...
    Link to Google Colab file: colab.research.google.com/dri...
    ---------------------
    Resources!
    Learn more about CNNs
    Good written overview: towardsdatascience.com/a-comp...
    Good video overview (@CodeEmporium ): • Convolution Neural Net...
    Illustrated Examples of CNNs: towardsdatascience.com/illust...
    MNIST Example: keras.io/examples/mnist_cnn/
    Learn more about TensorFlow datasets
    www.tensorflow.org/datasets/o...
    www.tensorflow.org/datasets/c...
    Learn more about Kerastuner
    Documentation: keras-team.github.io/keras-tu...
    @sentdex : • Optimizing Neural Netw...
    @krishnaik06 : • Tutorial 27- Create CN...
    Practice your Python Pandas data science skills with problems on StrataScratch!
    stratascratch.com/?via=keith
    Join the Python Army to get access to perks!
    UA-cam - / @keithgalli
    Patreon - / keithgalli
    ---------------------
    Video Timeline!
    0:00 Video Overview
    0:33 Getting Started (Setup & Installation)
    2:24 Finding datasets to use
    6:02 Data Preparation
    10:26 Additional Data Prep (Convert data to NumPy format)
    15:22 Reshape Data & Normalize values between 0-1
    19:39 Train our first network to classify images
    25:06 Convolutional Neural Net (CNN) approach
    28:48 Using GPU on Google Colab (speed up training)
    31:22 Improving our CNN (reduce image size, max pooling, dropout, etc)
    40:18 Using Kerastuner to automatically pick best hyperparameters
    52:50 Save & Load our models
    54:16 Plot NumPy arrays as images
    57:38 Convert JPG/PNG images to NumPy
    1:00:20 Final thoughts
    ---------------------
    Follow me on social media!
    Instagram | / keithgalli
    Twitter | / keithgalli
    If you are curious to learn how I make my tutorials, check out this video: • How to Make a High Qua...
    *I use affiliate links on the products that I recommend. I may earn a purchase commission or a referral bonus from the usage of these links.

КОМЕНТАРІ • 111

  • @KeithGalli
    @KeithGalli  4 роки тому +29

    Hey all! Been a little while since I have posted, but trying to get back into the swing of things. Hope everyone is doing well.
    Based on a lot of feedback I have gotten, my current plan is to make a web scraping tutorial with beautiful soup next. Not quite sure what will come after that.
    Does anyone have any suggestions? Would love to hear them :).

    • @thebeston6710
      @thebeston6710 4 роки тому

      sup keith galli, i need help trying to fix a bug in this code. This is a game where there is a player and it has to dodge the enemies. But for some reason I still die if i haven't touced any of the enemies. How do you fix that bug?
      import turtle
      import random
      import time
      from random import randint
      wn = turtle.Screen()
      wn.bgcolor('black')
      wn.setup(600, 800)
      x = random.randint(-290, 290)
      y = random.randint(395, 500)
      x1 = -290
      x2 = 290
      y1 = 395
      y2 = 1000
      pm = 10
      em = 5
      ed = 44
      s = 1
      score = 0
      p = turtle.Turtle()
      p.hideturtle()
      p.penup()
      p.speed(0)
      p.color('red')
      p.shape('circle')
      p.shapesize(stretch_wid = 2, stretch_len = 2)
      p.goto(0, -350)
      p.showturtle()
      enemy_colors = ['darkblue', 'cyan', 'green', 'yellow', 'purple', 'pink', 'brown', 'white', 'orange', 'lightgreen', 'blue']
      random_color = random.choice(enemy_colors)

      e1 = turtle.Turtle()
      e1.hideturtle()
      e1.color(random_color)
      e1.penup()
      e1.speed(0)
      e1.shape('square')
      e1.shapesize(stretch_wid=2, stretch_len=2)
      e1.goto(x, y)
      e1.showturtle()
      e1.right(90)
      random_color = random.choice(enemy_colors)
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      e2 = turtle.Turtle()
      e2.hideturtle()
      e2.color(random_color)
      e2.penup()
      e2.speed(0)
      e2.shape('square')
      e2.shapesize(stretch_wid=2, stretch_len=2)
      e2.goto(x, y)
      e2.showturtle()
      e2.right(90)
      random_color = random.choice(enemy_colors)
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      e3 = turtle.Turtle()
      e3.hideturtle()
      e3.penup()
      e3.speed(0)
      e3.color(random_color)
      e3.shape('square')
      e3.shapesize(stretch_wid=2, stretch_len=2)
      e3.goto(x, y)
      e3.showturtle()
      e3.right(90)
      random_color = random.choice(enemy_colors)
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      e4 = turtle.Turtle()
      e4.hideturtle()
      e4.penup()
      e4.speed(0)
      e4.color(random_color)
      e4.shape('square')
      e4.shapesize(stretch_wid=2, stretch_len=2)
      e4.goto(x, y)
      e1.showturtle()
      e4.right(90)
      random_color = random.choice(enemy_colors)
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      e5 = turtle.Turtle()
      e5.hideturtle()
      e5.penup()
      e5.speed(0)
      e5.color(random_color)
      e5.shape('square')
      e5.shapesize(stretch_wid=2, stretch_len=2)
      e5.goto(x, y)
      e5.showturtle()
      e5.right(90)
      random_color = random.choice(enemy_colors)
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      e6 = turtle.Turtle()
      e6.hideturtle()
      e6.penup()
      e6.speed(0)
      e6.color(random_color)
      e6.shape('square')
      e6.shapesize(stretch_wid=2, stretch_len=2)
      e6.goto(x, y)
      e6.showturtle()
      e6.right(90)
      random_color = random.choice(enemy_colors)
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      e7 = turtle.Turtle()
      e7.hideturtle()
      e7.penup()
      e7.speed(0)
      e7.color(random_color)
      e7.shape('square')
      e7.shapesize(stretch_wid=2, stretch_len=2)
      e7.goto(x, y)
      e7.showturtle()
      e7.right(90)
      random_color = random.choice(enemy_colors)
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      e8 = turtle.Turtle()
      e8.hideturtle()
      e8.penup()
      e8.speed(0)
      e8.color(random_color)
      e8.shape('square')
      e8.shapesize(stretch_wid=2, stretch_len=2)
      e8.goto(x, y)
      e8.showturtle()
      e8.right(90)
      random_color = random.choice(enemy_colors)
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      e9 = turtle.Turtle()
      e9.hideturtle()
      e9.penup()
      e9.speed(0)
      e9.color(random_color)
      e9.shape('square')
      e9.shapesize(stretch_wid=2, stretch_len=2)
      e9.goto(x, y)
      e9.showturtle()
      e9.right(90)
      random_color = random.choice(enemy_colors)
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      e10 = turtle.Turtle()
      e10.hideturtle()
      e10.penup()
      e10.speed(0)
      e10.color(random_color)
      e10.shape('square')
      e10.shapesize(stretch_wid=2, stretch_len=2)
      e10.goto(x, y)
      e10.showturtle()
      e10.right(90)
      pen = turtle.Turtle()
      pen.hideturtle()
      pen.penup()
      pen.goto(0, 360)
      pen.color('white')
      def move_right():
      x = p.xcor()
      x += pm
      if x > 290:
      x = 290
      p.setx(x)
      def move_left():
      x = p.xcor()
      x -= pm
      if x < -290:
      x = -290
      p.setx(x)
      def move_up():
      y = p.ycor()
      y += pm
      if y > 390:
      y = 390
      p.sety(y)
      def move_down():
      y = p.ycor()
      y -= pm
      if y < -390:
      y = -390
      p.sety(y)
      wn.listen()
      wn.onkeypress(move_left, 'Left')
      wn.onkeypress(move_right, 'Right')
      wn.onkeypress(move_up, 'Up')
      wn.onkeypress(move_down, 'Down')
      run = True
      while run:
      wn.update()
      em += 0.04
      e1.fd(em)
      e2.fd(em)
      e3.fd(em)
      e4.fd(em)
      e5.fd(em)
      e6.fd(em)
      e7.fd(em)
      e8.fd(em)
      e9.fd(em)
      e10.fd(em)
      if e1.ycor() < -395:
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      random_color = random.choice(enemy_colors)
      e1.color(random_color)
      e1.goto(100000000000, 100000000000)
      e1.goto(x, y)
      score += 1
      pen.clear()
      pen.write('{}'.format(score), align='center', font=('courier', 24, 'normal'))
      if e2.ycor() < -395:
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      random_color = random.choice(enemy_colors)
      e2.color(random_color)
      e2.goto(100000000000, 100000000000)
      e2.goto(x, y)
      score += 1
      pen.clear()
      pen.write('{}'.format(score), align='center', font=('courier', 24, 'normal'))
      if e3.ycor() < -395:
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      random_color = random.choice(enemy_colors)
      e3.color(random_color)
      e3.goto(100000000000, 100000000000)
      e3.goto(x, y)
      score += 1
      pen.clear()
      pen.write('{}'.format(score), align='center', font=('courier', 24, 'normal'))
      if e4.ycor() < -395:
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      random_color = random.choice(enemy_colors)
      e4.color(random_color)
      e4.goto(100000000000, 100000000000)
      e4.goto(x, y)
      score += 1
      pen.clear()
      pen.write('{}'.format(score), align='center', font=('courier', 24, 'normal'))
      if e5.ycor() < -395:
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      random_color = random.choice(enemy_colors)
      e5.color(random_color)
      e5.goto(100000000000, 100000000000)
      e5.goto(x, y)
      score += 1
      pen.clear()
      pen.write('{}'.format(score), align='center', font=('courier', 24, 'normal'))
      if e6.ycor() < -395:
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      random_color = random.choice(enemy_colors)
      e6.color(random_color)
      e6.goto(100000000000, 100000000000)
      e6.goto(x, y)
      score += 1
      pen.clear()
      pen.write('{}'.format(score), align='center', font=('courier', 24, 'normal'))
      if e7.ycor() < -395:
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      random_color = random.choice(enemy_colors)
      e7.color(random_color)
      e7.goto(100000000000, 100000000000)
      e7.goto(x, y)
      score += 1
      pen.clear()
      pen.write('{}'.format(score), align='center', font=('courier', 24, 'normal'))
      if e8.ycor() < -395:
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      random_color = random.choice(enemy_colors)
      e8.color(random_color)
      e8.goto(100000000000, 100000000000)
      e8.goto(x, y)
      score += 1
      pen.clear()
      pen.write('{}'.format(score), align='center', font=('courier', 24, 'normal'))
      if e9.ycor() < -395:
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      random_color = random.choice(enemy_colors)
      e9.color(random_color)
      e9.goto(100000000000, 100000000000)
      e9.goto(x, y)
      score += 1
      pen.clear()
      pen.write('{}'.format(score), align='center', font=('courier', 24, 'normal'))
      if e10.ycor() < -395:
      x = random.randint(x1, x2)
      y = random.randint(y1, y2)
      random_color = random.choice(enemy_colors)
      e10.color(random_color)
      e10.goto(1000000000000, 100000000000)
      e10.goto(x, y)
      score += 1
      pen.clear()
      pen.write('{}'.format(score), align='center', font=('courier', 24, 'normal'))
      if p.distance(e1) < ed:
      time.sleep(s)
      print('Score:', score)
      quit()
      if p.distance(e2) < ed:
      time.sleep(s)
      print('Score:', score)
      quit()
      if p.distance(e3) < ed:
      time.sleep(s)
      print('Score:', score)
      quit()
      if p.distance(e4) < ed:
      time.sleep(s)
      print('Score:', score)
      quit()
      if p.distance(e5) < ed:
      time.sleep(s)
      print('Score:', score)
      quit()
      if p.distance(e6) < ed:
      time.sleep(s)
      print('Score:', score)
      quit()
      if p.distance(e7) < ed:
      time.sleep(s)
      print('Score:', score)
      quit()
      if p.distance(e8) < ed:
      time.sleep(s)
      print('Score:', score)
      quit()
      if p.distance(e9) < ed:
      time.sleep(s)
      print('Score:', score)
      quit()
      if p.distance(e10) < ed:
      time.sleep(s)
      print('Score:', score)
      quit()

      wn.mainloop()

    • @SSSNIPD
      @SSSNIPD 4 роки тому

      I have done andrew ng's machine learning course. It would be awesome if you could explain how to apply those concepts to python and start machine learning in python.

    • @arhataria
      @arhataria 4 роки тому

      Another series of real "business" world data science tasks (using pandas and machine learning together!) would be awesome :D I'm from a non-IT background and the last series you posted actually helped me a lot at my work!!! Thanks a lot :)

    • @thebeston6710
      @thebeston6710 3 роки тому

      Can you try to do OpenGL

    • @CassieYT1
      @CassieYT1 3 роки тому

      Maybe a video on GANs would be cool?

  • @seekergx8096
    @seekergx8096 4 роки тому +1

    Thank you so much man! I've been studying ML like crazy and even so it's hard to get going without seeing someone do it first, you're really helping me out!

  • @satchsumner-waldman8761
    @satchsumner-waldman8761 Рік тому

    Keith, your videos are unbelievably good, I've watched almost one per day for a week straight. Thanks so much for putting out this content!

  • @pkPatricia
    @pkPatricia 3 роки тому +9

    Keith cannot thank you enough, there are places that present this topic in like 6 hours or something and you got to the point and really filled in some gaps I had with this concept. Very nice!

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

    Thank you soo much, your explanation is relatable and easy to understand! :) I can't believe you are teaching for free. Happy to learn from you ☺️

  • @cagataykirici9878
    @cagataykirici9878 4 роки тому

    It has now become an awesome rock-paper-scissors series man, thank you!

  • @wiz8058
    @wiz8058 4 роки тому +1

    Finally Keith brought us our favorite food. Thanks 🙏🏼. Love how you made it too. Best tuition and keep it up bro

  • @afrozahmad3173
    @afrozahmad3173 4 роки тому +16

    Keith u finally posted u dont know how much i wait for your tutorials man and thx for the NN vid very good and u explain very well.Stay safe at home guys

    • @KeithGalli
      @KeithGalli  4 роки тому +3

      Sorry for keeping you waiting! I appreciate your support 🙌

  • @wt7658
    @wt7658 3 роки тому +1

    It is very helpful for my preparation for the Tensorflow cert exam. Thanks very much!

  • @renipratiwi5720
    @renipratiwi5720 3 роки тому

    i gladi find your channel. now i know how to resolve my main problem in my rock-paper-scissors exam. youve got a new subs!

  • @tamoorkhan3262
    @tamoorkhan3262 3 роки тому

    The most illustrative tutorial on TensorFlow & Keras regarding NN and CNN. (Y)

  • @irumidesu9236
    @irumidesu9236 3 роки тому

    dude, thanks for explaining most of the basics!

  • @quytrannhat11
    @quytrannhat11 3 роки тому

    extremely good, easy to understand, good job bro

  • @omkarsatapathy8209
    @omkarsatapathy8209 3 роки тому +1

    Great job body. You made me love CNN 😃.
    I am accepting you as my teacher ☺️🙏

  • @CodeEmporium
    @CodeEmporium 4 роки тому +1

    Gotta love those details. Awesome work!

    • @KeithGalli
      @KeithGalli  4 роки тому

      Thanks man! Big fan of your videos :)

  • @phan5001
    @phan5001 3 роки тому

    Thank you so much! This is very helpful for my project!

  • @saadbenbrahim954
    @saadbenbrahim954 4 роки тому +1

    Thank you! My man for this tutorial. A watcher from Morocco

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

      You're welcome :). Would love to visit Morocco some day!

    • @saadbenbrahim954
      @saadbenbrahim954 4 роки тому

      @@KeithGalli you're welcome, I will be happy to show you around.

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

    Hi Keith, really, can't thank you enough for making all the amazing videos that's perfect and easy to understand for someone like me who's first language isn't English :)

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

      Glad that you enjoy them and happy to hear my English is easy enough to understand! :)

  • @moseskioko7820
    @moseskioko7820 3 роки тому

    good stuff, thanks for the sharing knowledge

  • @qingdekueh7186
    @qingdekueh7186 3 роки тому +7

    Hi, how do you use this to predict a new image if it is rock paper or scissor? :(

  • @ajayrana4296
    @ajayrana4296 3 роки тому

    this is how teaching should be... love u brother

  • @Veguinho
    @Veguinho 3 роки тому

    Great tutorial! Thanks dude!

  • @RamiroAsincrono
    @RamiroAsincrono 3 роки тому +1

    Thank you! From Argentina

  • @richarddankwah3088
    @richarddankwah3088 3 роки тому +1

    Hey !!! Mr. Galli is been a while, Infact your Tutorials on Data Analysis with python on that Mobile electronics and appliance was superb. It helped me to complete my project. Thou I found out few lapses and was a challenge which I was able to solve them myself and I did like a charm. You gave me that boldness to apply for few Jobs with my new project. Thank you. But the lapses really strengthen me very well and made me exploit more on different ways of writing codes. "But there is One last step you failed to do with that data, that is Predicting future sales with the data. Please kindly come back to fill that gap for us please . "Using Tensorflow and Keras with LSTM and or ARIMA model to predict future sale on items and dates". Still in waiting, you already have 3 stars with me, waiting for the part 2, (Using Tensorflow and Keras with LSTM and or ARIMA model to predict future sale on items and dates) which will be 2 stars to complete a 5 Star. Stillll In waiting !!!!!!!!!!!!!!!!!!!!!!

  • @lokguanlim7420
    @lokguanlim7420 4 роки тому +1

    Learned a lot. Thank you so much!

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

    HOW DID I MISS THIS UPLOAD 🤩

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

    Bro, you help a lot with your vids!

  • @Mei-ChiShih
    @Mei-ChiShih Рік тому

    Excellent video

  • @Kingsohio
    @Kingsohio 3 роки тому

    This is dope bruh! Thanks for video

  • @user-im9uu8zy5m
    @user-im9uu8zy5m 3 роки тому

    Thank you for the great video!!!

  • @lucky4the4turtle
    @lucky4the4turtle 4 роки тому

    You're Back!!!!! Dude we've missed you!!

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

    You made it so clear step by step, great tutorial, best so far. Just wonder if u could make a video about custom object detecting using tensorflow keras on google colab, I've searched all around the youtube, all of the videos about this topic is kinda frustrating and dispointing, they teach people in a complex way, i'm a lazy man, really like the way you teaching 🍺

  • @parpithovas
    @parpithovas 4 роки тому

    thank you. great job!

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

    Thank you so much!!

  • @andrehoffman6887
    @andrehoffman6887 3 роки тому

    Always good to hear you, Keith. By the way, what'd you recommend for people to get a first job using CNN's? Thanks a lot

  • @seraf_in_._._._._._._._._._._
    @seraf_in_._._._._._._._._._._ 3 роки тому

    Thank you for the nicely explained video! Helped me a lot. One question: If i use 64 filters in the first layer and 32 in the second (I'm talking about the net architecture around min 30), will i have 64*32=2048 filters in the second layer? Thanks!

  • @YazeedAlkosai
    @YazeedAlkosai 3 роки тому

    fruitful video, hope to see more in the 3D shape model using CNN with Keras. what if I have an object of 3D and need to train and predict the feature shape as measuring the shape by using CNN prediction and accuracy ?

  • @manu93ize
    @manu93ize 4 роки тому

    Congrats man 🙏 finally got monetized .

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

    Thank you so much^^

  • @WhiteError37
    @WhiteError37 3 роки тому

    Keith, is it possible to predict where something is via a signal strength value and it’s lat and lng?
    So the higher the signal strength the closer you are to it. I’m struggling to write this in code form
    basically like a weighted median value but the Ai does the work and adjusts the weights. All that
    the model needs to output is a lat and lng of where it thinks the signal is coming from.

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

    Hi Keith,
    If I want to use a dataset that is already on my computer instead of downloaded from the Internet, how do I do it! Much thanks :-)

  • @thezeroquotient
    @thezeroquotient 4 роки тому

    Insightful!

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

    Stay safe my dear friend Keith, I m Indian & here covid cases are increasing 🇮🇳

    • @KeithGalli
      @KeithGalli  4 роки тому +3

      Sorry to hear that covid cases are increasing over there :/. Hope you stay safe & healthy as well. We all will get through this!

    • @MrKrishnalovesyou
      @MrKrishnalovesyou 4 роки тому +1

      @@KeithGalli Yes Keith... We will fight & win ✌️

    • @prashantbisht2219
      @prashantbisht2219 3 роки тому +1

      @@MrKrishnalovesyou Bht hi ache bhai, mjaa hi aagya

  • @digigoliath
    @digigoliath 4 роки тому

    Awesome!! TQVM!

  • @Mei-ChiShih
    @Mei-ChiShih Рік тому +1

    May I have a question?
    Why my terminal shows " cannot reshape array of size 226800000 into shape (372,300,300,1)"
    while I ran this code"train_images = train_images.reshape(2520, 300, 300, 1)
    test_images = test_images.reshape(372, 300, 300, 1)".

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

    The pooling size of the MaxPooling layer is 2, which is too small to represent the image. If you set the pool_size to (5, 5), the test accuracy will be 80%.

  • @mohamadalemi2596
    @mohamadalemi2596 3 роки тому

    is there any paper base on your tutorial? I want use it for my university project but it should be relative to specific paper (nice to be in ISA)

  • @dab30012151227
    @dab30012151227 3 роки тому

    Thank you Keith for such a lovely video.
    While running the code "model.evaluate(test_image, test_label)", I got below error. I am not sure why train and test size should be same.
    "ValueError: Data cardinality is ambiguous:
    x sizes: 2520
    y sizes: 372
    Please provide data which shares the same first dimension".
    I checked the shape of train_images and test_images and they are same "(300, 300, 1)"

  • @davidadu1113
    @davidadu1113 4 роки тому

    Your Pandas tuto was so great. It has urged me to go further. Can you do a tuto on how to deploy a machine learning model in django?

    • @joseph3036
      @joseph3036 3 роки тому

      That is easily done using Streamlit, checkout this video.
      m.ua-cam.com/video/aAQe8plGy1M/v-deo.html

  • @igordovgan7512
    @igordovgan7512 4 роки тому

    Thank you

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

    Can you please explain how to load the data if saved locally but in different folders, that is, test images in one folder, train images in folders 0, 1 and 2 as per their types? Thank you.

  • @JO-ej3nh
    @JO-ej3nh 3 роки тому

    I was trying to use the cat and dog dataset but the shape on shows the size of the samples and nothing else. Also there is only train data and only test data. Any solutions?

  • @woonie3134
    @woonie3134 3 роки тому

    How can u extract the label of a classified image when working with a large dataset? I would like to classify food image and recommend recipes based on the label identified but I am not understanding how to do this. I WOULD kindly ask a tutorial on this matter. There is barely information on food related projects plz

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

    So how do I use this model to make predictions

  • @Nadelaev
    @Nadelaev 4 роки тому +1

    Thanks for your videos, man! But can you do some of PyTorch examples?

    • @KeithGalli
      @KeithGalli  4 роки тому +1

      That is something that I want to do, but I don't have it on the immediate roadmap. Think it would require a decent amount of planning to do properly and want to focus on some other video topics before diving into PyTorch.

    • @Nadelaev
      @Nadelaev 4 роки тому

      @@KeithGalli gonna keep waiting! appreciate your work)

    • @ayencoscolfield3312
      @ayencoscolfield3312 3 роки тому

      Same here too eagerly waiting for a deep learning pytorch video examples from our man Keith Gaili

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

    Where can I find the series of Keras and tensorflow videos?

  • @tinsp253
    @tinsp253 3 роки тому

    Hi Keith, great job. I have learned a lot from your videos. Hope you will produce more. By the way, I have followed your video and the image classification work as expected. How can I predict one single image? When I pass in test_images[0], the predict function return "... expected ndim=4, found ndim=3 ...." obviously it is expecting 4 dimensional array.

    • @KeithGalli
      @KeithGalli  3 роки тому

      I think you could pass it in as predict(np.array(test_images[0])) and it will work.
      Glad you have liked some of my videos! :)

    • @tinsp253
      @tinsp253 3 роки тому

      @@KeithGalli I do this:
      print("Predict: ", np.round(best_model.predict(np.array(test_images[0]))))
      and the result is still the same as below
      "ValueError: Input 0 of layer sequential is incompatible with the layer: expected ndim=4, found ndim=3. Full shape received: [None, 300, 1]"

    • @azzmaniac4139
      @azzmaniac4139 3 роки тому

      You should try this : best_model.predict(np.array(test_images))[your_number] and it'll work!!

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

      @@azzmaniac4139 When I'm prediction the model based on how you told it's returning an ndarray instead of the label, any idea how to tackle it?

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

    hey keith hope you are well bro. I was hoping you could do a video on this same sort of stuff but doing it by using google drive. I have datasets for training images and testing images in my drive with a csv for each containing their forresponding labels. Thoughts?

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

      I have a similar video that is already filmed going over similar stuff. It got delayed by the sponsor so I'm not a exactly sure when I can post it

  • @sdiabr6792
    @sdiabr6792 4 роки тому

    I can't thank you enough man
    Really amazing stuff
    Quick question
    Do you have any competitive programming background?
    And if so, could you give some tips on how to get better at it?
    Thanks so much man

  • @aisham.yousuf5772
    @aisham.yousuf5772 2 роки тому

    how to load our own dataset (pictures/images of objects) instead of using one of the existing dataset of tensorflow?

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

      I personally like using an ImageGenerator & the flow from directory methods in Keras. Here is a link you can read more about that: datascience.stackexchange.com/questions/65979/what-is-the-correct-way-to-call-keras-flow-from-directory-method

  • @FaizRaza-ue1be
    @FaizRaza-ue1be 4 місяці тому

    While showing the example using "fig = tfds.show_examples(info, ds_train)"
    It'll not work, it'll just throw an error, this signature has been modified from (info, ds_train) to (ds_train, info), so change it in your code...

  • @DanielWeikert
    @DanielWeikert 4 роки тому

    Thanks. Why exactly did you keep the red color channel?

    • @KeithGalli
      @KeithGalli  4 роки тому

      Ultimately we could have kept any of the color channels and the performance would remain roughly the same. Each of the color channels would produce a pretty similar grey scale image. No real reason I took red specifically other than I thought it made sense to just use index 0.

    • @DanielWeikert
      @DanielWeikert 4 роки тому

      @@KeithGalli ok thanks, so far I have always seen converting the color image to rgb upfront so I was wondering.

  • @dhainik.suthar
    @dhainik.suthar 2 роки тому

    How to use this model for real time image classification ?

  • @jackoverstreet2835
    @jackoverstreet2835 3 роки тому

    If anyone is using Anaconda and importing the TensorFlow Dataset through pip isn't working then try:
    conda install -c anaconda tensorflow-datasets
    in the Anaconda Prompt, it worked for me.

  • @Banana_Chris
    @Banana_Chris 4 роки тому

    Is there a way to train a network with custom objects via webcam and then hold an object into the webcam so it will detect the custom object? I can't find not one tutorial about this:/
    If someone know how to do that I would be very very thankful

    • @KeithGalli
      @KeithGalli  4 роки тому

      Hmm, yeah that would be the next logical extension of this tutorial. I don't know when I will get to it, but maybe check out this video series by sentdex: ua-cam.com/play/PLQVvvaa0QuDcNK5GeCQnxYnSSaar2tpku.html

  • @soybeanz8582
    @soybeanz8582 4 роки тому

    keith please make a video about the drawing app i send its cool it took hours to make

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

    Mnist example link in description points to 404 page

  • @soybeanz8582
    @soybeanz8582 4 роки тому

    keith i send you a code on your turtle graphics video its a drawing app can you put it in a video

  • @siddharthmani9588
    @siddharthmani9588 3 роки тому

    Why are you using epochs = 5? aren't they a little less?

    • @joseph3036
      @joseph3036 3 роки тому

      To save some time.

    • @siddharthmani9588
      @siddharthmani9588 3 роки тому

      @@joseph3036 Is there an ideal number for the total epochs one must run?

    • @joseph3036
      @joseph3036 3 роки тому

      10 epochs have worked well for me so far, too many epochs will cause overfitting.
      stackoverflow.com/questions/47421951/keras-optimal-epoch-selection

  • @soybeanz8582
    @soybeanz8582 4 роки тому

    do the drawing app i put the code