Lesson 2: Practical Deep Learning for Coders 2022

Поділитися
Вставка
  • Опубліковано 2 сер 2024
  • Q&A and all resources for this lesson available here: forums.fast.ai/t/lesson-2-off...
    00:00 - Introduction
    00:55 - Reminder to use the fastai book as a companion to the course
    02:06 - aiquizzes.com for quizzes on the book
    02:36 - Reminder to use fastai forums for links, notebooks, questions, etc.
    03:42 - How to efficiently read the forum with summarizations
    04:13 - Showing what students have made since last week
    06:45 - Putting models into production
    08:10 - Jupyter Notebook extensions
    09:49 - Gathering images with the Bing/DuckDuckGo
    11:10 - How to find information & source code on Python/fastai functions
    12:45 - Cleaning the data that we gathered by training a model
    13:37 - Explaining various resizing methods
    14:50 - RandomResizedCrop explanation
    15:50 - Data augmentation
    16:57 - Question: Does fastai's data augmentation copy the image multiple times?
    18:30 - Training a model so you can clean your data
    19:00 - Confusion matrix explanation
    20:33 - plot_top_losses explanation
    22:10 - ImageClassifierCleaner demonstration
    25:28 - CPU RAM vs GPU RAM (VRAM)
    27:18 - Putting your model into production
    30:20 - Git & Github desktop
    31:30 - For Windows users
    37:00 - Deploying your deep learning model
    37:38 - Dog/cat classifier on Kaggle
    38:55 - Exporting your model with learn.export
    39:40 - Downloading your model on Kaggle
    41:30 - How to take a model you trained to make predictions
    43:30 - learn.predict and timing
    44:22 - Shaping the data to deploy to Gradio
    45:47 - Creating a Gradio interface
    48:25 - Creating a Python script from your notebook with #|export
    50:47 - Hugging Face deployed model
    52:12 - How many epochs do you train for?
    53:16 - How to export and download your model in Google Colab
    54:25 - Getting Python, Jupyter notebooks, and fastai running on your local machine
    1:00:50 - Comparing deployment platforms: Hugging Face, Gradio, Streamlit
    1:02:13 - Hugging Face API
    1:05:00 - Jeremy's deployed website example - tinypets
    1:08:23 - Get to know your pet example by aabdalla
    1:09:44 - Source code explanation
    1:11:08 - Github Pages
    Thanks to bencoman, mike.moloch, amr.malik, gagan, fmussari, kurianbenoy, and heylara on forums.fast.ai for creating the transcript.
    Thanks to Raymond-Wu on forums.fast.ai for creating the timestamps.

КОМЕНТАРІ • 97

  • @mikementele
    @mikementele 16 днів тому

    I've taken many ML courses over the years and I love the hands on nature of this with Jupyter notebooks, the extra background provided with the book, the quizzes, and the top down approach that orients you on breadth before depth. This is done right from a pedagogy standpoint.

  • @Karen-ls7hv
    @Karen-ls7hv Рік тому +91

    thank you for making AI education free and accessible 😊

    • @howardjeremyp
      @howardjeremyp  Рік тому +48

      It's my pleasure

    • @nimbus1r
      @nimbus1r Рік тому +14

      ❤ This course will have a ripple effect for an entire generation of programming

  • @zzznavarrete
    @zzznavarrete 5 днів тому +1

    Also, whoever is using Gradio's version 4.39 or above, the following is code is for the Gradio interface:
    # creating the gradio interface
    image = gr.Image(height=192, width=192)
    label = gr.Label()
    examples:list = ['./assets/dog.png', './assets/cat.png', './assets/dunno.png']
    intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)
    intf.launch(inline=False)

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

    This is very neat content, and your way of explaining those concepts is calm and posed, very enjoyable to watch ! Thank you.

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

    Thank you so much for adding the commands for wsl to add the drivers on ubuntu. this is the most time consuming part for me when I setup a new computer. I really appreciate it.

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

    Jeremy thank you so much for all the effort. It means a lot ! Really appreciate

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

    No fillers so much knowledge I wish all my teachers were this good.

  • @ashish-blessings
    @ashish-blessings 2 роки тому +1

    Thank you for the amazing course.

  • @chuhaoliu5050
    @chuhaoliu5050 Рік тому +5

    Update for 2023. In Gradio deployment notebook, `intf.launch(inline=False)` needs to change to `intf.launch(inline=False,share=True)` to have the public web link.

  • @cojocarucosmin202
    @cojocarucosmin202 2 роки тому +23

    Respect for giving out high quality information, you are the real deal and so few people actually know...

  • @saadorj
    @saadorj 2 роки тому +36

    Thank you, Jeremy, and everyone involved in creating this great course. It only gets better with every new iteration!

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

    This tutorials is really helpful, thanks so much. you are boosting my knowledge.

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

    Really cool !
    Thank you to share with us.

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

    It's way more fun to learn by building something people can actually use!! Thanks a ton!

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

    Thank you for the amazing videos Prof. Howard!

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

    OMG, I'm so excited to see new updates to this course! EDIT: Is there somewhere that I can read about what has changed?

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

    Loved every bit of it. Thanks, jph00. ;)

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

    Great educational video!

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

    Thank you very much for this course :)

  • @user-xp8qn6jw1j
    @user-xp8qn6jw1j 8 місяців тому

    I love your lecture! 😄

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

    Great lecture! Jeremy is amazing at explaining such cryptic concepts

  • @hiankun
    @hiankun Рік тому +4

    "And when I say one day, more specifically... today!" XD
    Today is a good day. 😀

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

    Thank you so much!

  • @palahnuk1
    @palahnuk1 11 місяців тому +4

    Jeremy ... you are the real deal ... thanks for giving your personal time and energy to open the world of ML to mere mortals like us older engineers ... you are a real world blessing!

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

    So fun hearing anecdotes of classifying images of a dog cat with your daughter

  • @rahmanoff
    @rahmanoff 6 місяців тому +1

    Thanks Jeremy!
    p.s. if you try to go step by step and got error "module 'gradio' has no attribute 'inputs'", try gradio==3.48.
    It works well for me.

  • @mikementele
    @mikementele 16 днів тому

    This course is amazing

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

    so amazing classss

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

    this is bery good thank you ;)

  • @user-cs2ro6sl9h
    @user-cs2ro6sl9h Рік тому

    Yes it can - don't despair!

  • @jasonholtkamp8462
    @jasonholtkamp8462 Рік тому +4

    You know what's hilarious is that I actually read the book chapter before watching the lesson and I had the hardest time finding my Azure Bing API Key after I made my account and whatnot... It literally took me longer to just do that step than the entire rest of the lesson lol. And then Jeremy just goes yeah screw that I'm going to use duckduckgo instead haha.

  • @zzznavarrete
    @zzznavarrete 5 днів тому

    for those who are using windows and got the following error message: "NotImplementedError: cannot instantiate 'PosixPath' on your system", the fix is:
    import pathlib
    temp = pathlib.PosixPath
    pathlib.PosixPath = pathlib.WindowsPath

  • @estrellaum9480
    @estrellaum9480 Рік тому +4

    I need triple the time of the video to understand it, but I am getting there, thanks! By the way, the dog-cat thing apparently is a puppy...

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

    @jeremy in the randomization/augmentation process in real-time in memory, does a single image and its variants all get included in a single batch? If they do, how does this affect the quality of the weight updates vs spreading some of the augemented images to other batches

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

    thank you for the great content. do you recommend jupyter notebook over jupyter lab? (any reason, is nbdev supported in jupyter lab?)
    also you mention number of epochs recommended. it could be useful just to give a number on how many epochs were needed to do the original training on the model that we are fine tuning against to give some perspective.

  • @cullenharris1837
    @cullenharris1837 Рік тому +18

    Where can we find the notebook at 41:32 for Dogs v Cats on your local?

    • @hawperify
      @hawperify Рік тому +3

      Also wondering this, having trouble following along that this section...

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

      It was covered in Lesson 1. Check out the Resources section here: course.fast.ai/Lessons/lesson1.html

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

      Got the same problem. It's the app.ipynb file that I can't find. Did you manage to find it?

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

      @@paulmest where is it in the resources section?

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

      @@bampy81 did you find it? if yes please lemme know

  • @marktomm1959
    @marktomm1959 3 місяці тому +3

    With gradio==4.28.3 the example code in the video won't work.
    error "module 'gradio' has no attribute 'inputs'"
    Fix:
    image = gr.Image(height=192, width = 192)
    label = gr.Label()

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

    Love the course !! But I really recommend streamlit instead of gradio.. :D

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

    56:57 curl doesnt have --no-progress-meter option. If you are setting up on mac remove that option from the command

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

    yo this is an amazing.

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

    so cool

  • @DeepakKumarDataScience
    @DeepakKumarDataScience Рік тому +3

    What is the repo used for this set of jupyter notebooks? The Fastbook directory seems to have the textbook version that uses Azure SDK keys whereas Jeremy refers to the DDG alternative. I am not able to find the right folder under the fast ai repos.

  • @davisisibor3509
    @davisisibor3509 Місяць тому

    Watching this last few sections of this video as a frontend developer . Was one of my best moments 😂😂😂😂.
    I skipped the entire thing 😂😂😂😂😂

  • @jordankuzmanovik5297
    @jordankuzmanovik5297 2 роки тому +5

    Hi jeremy, as always great course. But what about practical deep learning from the foundation? I am waiting 2 years for those.
    Thanks

  • @aworden
    @aworden Рік тому +3

    Where can we get the locally run notebook that you used to create the python script for the gradio app? Could this be run in Kaggle instead of locally and exported / downloaded? It makes it confusing that you're jumping from Kaggle to colab to local notebooks. Is that necessary?

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

    what does calling 'train' method on dls object do? does it show the images that are used to train the model? what does 'valid' method do?

  • @kophaihoang
    @kophaihoang 6 місяців тому +1

    The weird dog at 47:20 is "Chó Dúi" and he is from Vietnam, it is unlucky that he just passed away last year :(

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

    Where can I look for the notebook to lesson 2 using ddg method?, cause on the fastai book website still show the version using key and Microsoft Azure

  • @enigmeta
    @enigmeta Рік тому +3

    It seems that nbdev 2.0 works very differently, because the export doesn't work anymore. Is there a good tutorial on how to use the new version?

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

    49:12 Looking at the source code for nbdev.export, there is no `notebook2script` function. The closest in functionality appears to be `nb_export(nbname, lib_path = None)`. nbdev version: 2.0.6. Did anyone run into the same issue?

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

      This video is probably referencing v1 of nbdev. For v2, you can use:
      # Bash Terminal
      nbdev_export --path "app.ipynb"
      or
      # Jupyter Notebook
      from nbdev import nbdev_export
      nbdev_export("app.ipynb")
      A `nbdev` folder is created with the `app.py` file in it.

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

      anything to convert an existing project to nbdev?

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

    In the step of cleaning the data . Are we moving the files in the folder ? Do we have to have to create the model again?

  • @piecucci
    @piecucci 5 місяців тому +1

    10:57 I was getting an error after running dls = bears.dataloaders(path) from the cells further fown in the notebook. I needed to change the quotations marks in the cell with bear_types for the variable path = Path("bears") (double quotation marks)... Took me some googling around to make it work!

    • @piecucci
      @piecucci 5 місяців тому +1

      I've also needed deindent the for loop for the bear_types and remove the folders created before running the code again.
      if not path.exists():
      path.mkdir()
      for o in bear_types:
      dest = (path/o)
      dest.mkdir(exist_ok=True)
      download_images(dest, urls=search_images_ddg(f'{o} bear photo'))

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

      ​@@piecucci I had the exact same problem. Thanks for commenting this!🙏

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

    You mention that the learner needs all the same functions it had in training. Is this due to using pickle? Can you just use cloudpickle instead and not provide the training environment?

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

    It says fastpages is deprecated and one should use quattro instead. Thoughts?

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

    mamba install jupyter notebook is required nbdev alone doesnt install jupyter on Mac

  • @nostalgiccringeallhailchel3881

    btw that dog cat image is actually a puppy that looks like a cat

  • @shubh9207
    @shubh9207 2 місяці тому

    Hello, is it fine to run Jupyter notebook on VS code instead of running it on a local browser?

  • @blenderpanzi
    @blenderpanzi 8 місяців тому

    That dog-cat has an AI generated feel to me.

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

    I created a hugging space faces page and created a new space called "minimal", selected apachie, radio, and public. Im on mac and copied the repo into the terminal. I then tried to do code . but it says "command not found: code" I am not sure what I did wrong.

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

      I had the same issue
      First make sure you have downloaded Visual Studio Code
      Open Visual Studio Code
      Type Cmd+Shift+P and input '> shell command' and click Shell Command: Install 'code' command in PATH command.
      Restart your terminal
      In the terminal type in “cd minimal”
      Then input “code . "

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

      uninstall and reinstall vscode. Sometimes the environment path get corrupted and the updates don't happen properly

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

      I had the same issue. It worked straight after I had restarted the windows 11 PC

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

    I'm running into an issue where the ImageClassifierCleaner is not working properly in a Kaggle notebook. Anyone else face a similar issue and know a solution?

    • @heatedpants8437
      @heatedpants8437 Місяць тому

      Re-running all the cells from the start fixed it for me

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

    how to study this course. does it only have 8 lectures ?

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

      No there's 25 lectures. Go to course.fast.ai/ .

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

    Is there a reason why you use windows? I've been working industry as a developer for 7 years now and have only seen one person use windows and they always had issues. Just curious if it's cuz microsoft now ships with linux kernel or if there's any benefits for deep learning.

    • @howardjeremyp
      @howardjeremyp  Рік тому +3

      I like being able to use a stylus directly on the screen. I use WSL (Linux) or SSH into a Linux server for nearly all my work though.

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

    43:32

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

    The one thing that didn't seem super clear to me is why he is doing everything in a Linux environment in the first place. Why not just install python and all the libraries on regular windows without that extra step of having to go to linux first.

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

    13:32

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

    First, thanks for the great lesson, I really appreciate it!
    Second, any Magento developers get excited when the Magento logo came up? ua-cam.com/video/F4tvM4Vb3A0/v-deo.html

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

    Love the course but I do hate the way you code. I have spent way too much time figuring out which imports are giving me which function I’m using

    • @howardjeremyp
      @howardjeremyp  Рік тому +3

      To find out what import provides a function, type the function name and hit shift-enter.

  • @alecmorgan3541
    @alecmorgan3541 2 місяці тому

    You wouldn't download 600 images of bears!

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

    dog? pig? loaf of bread. SYSTEM ERROR

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

    it is a dog

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

    Thank you Jeremy, but we are programmers... 80% of time you spent on showing stuff we already know... git, jupiter etc... can you make 30 minute course with core concepts of fastai framework. What models when used etc...

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

    has anyone managed to solve 'NotImplementedError: The operator 'aten::_linalg_solve_ex.result' is not currently implemented for the MPS device. ' issue on macos m series?

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

      no but I have the same problem. I just did it in Google Colab.

  • @05me39
    @05me39 Рік тому +3

    6:57 Need to import widgets before using ImageClassifierCleaner
    from fastai.vision.widgets import *