8분 안에 이미지 분류 인공지능(딥러닝) 만들기 실습 구현 | ResNet ImageNet TensorFlow(텐서플로우) Colab(코랩) 머신러닝 파이썬

공유
소스 코드
  • 게시일 2021. 09. 28.
  • #deeplearning #딥러닝 #머신러닝 #이미지처리 #텐서플로우 #코랩
    코랩에서 파이썬, Tensorflow(텐서플로우)를 사용해서 ImageNet 대회에서 2015년 우승했던 이미 학습된 ResNet 모델을 불러와서 이미지 분류 딥러닝 인공지능 모델을 만듭니다. 처음부터 끝까지 라이브 코딩을 하고 8분 안에 진행되기 때문에 웹브라우저만 있으면 쉽게 따라하실 수 있습니다^^ 불러온 인공지능 모델을 tensorflow datasets에 있는 강아지와 고양이 데이터에 테스트합니다!
    데이터 셋 출처:
    www.tensorflow.org/datasets/c...
    @Inproceedings (Conference){asirra-a-captcha-that-exploits-interest-aligned-manual-image-categorization,
    author = {Elson, Jeremy and Douceur, John (JD) and Howell, Jon and Saul, Jared},
    title = {Asirra: A CAPTCHA that Exploits Interest-Aligned Manual Image Categorization},
    booktitle = {Proceedings of 14th ACM Conference on Computer and Communications Security (CCS)},
    year = {2007},
    month = {October},
    publisher = {Association for Computing Machinery, Inc.},
    url = {www.microsoft.com/en-us/resea...},
    edition = {Proceedings of 14th ACM Conference on Computer and Communications Security (CCS)},
    }

댓글 • 33

  • @lynnedong8661
    @lynnedong8661 8 개월 전

    소중한 영상고맙습니다. 그런데 코랩에 맨 위에 라이브러리를 선언하는데도 아래의 새코드 창에서는 인식이 안되어 다시 선언을 해주어야만 작동이 되는 이유가 뭘까요? 설정의 문제인 것인지 궁금합니다.

  • @user-gn3bq5sj3c
    @user-gn3bq5sj3c 2 년 전 +1

    와우 리스펙입니다~!^^!

    • @it4928
      @it4928  2 년 전

      영상이 도움이되셨으면 좋겠네요~ 이런 실습 콘텐츠들도 지속적으로 올리려고 해요^^

  • @user-wp8vn7pb6s

    선생님 영상 감사합니다.
    혹시 제가 컴퓨터에 가진 파일로 직접 데이터를 넣으려면 코드를 초반에 어떻게 넣어야하나요? 그리고 그 많은 사진자료에 대한 타깃값이 없으면 비지도 학습으로 묶은다음 데이터를 넣어야 하나요?

  • @user-qe2bc4ic1b
    @user-qe2bc4ic1b 년 전 +1

    혹시 말라리아 데이터셋 이용한 코딩은 어떻게 할 수 있을까요?

  • @lnq969
    @lnq969 년 전

    ResNet50을 사용하는 것은 다른 이미지는 분류가 불가능한 것인가요(삼각형,사각형,별모양 등)?
    저희가 작성한 코드에서는 이미지만 입력하고 분류 정보(Egyptian_cat, Tiger_cat)는 입력하지 않았는데, 어떻게 결과에 표시되는지 궁금합니다!

  • @Jun4Junyon
    @Jun4Junyon 년 전

    친절한 설명 감사합니다. 제가 주피터랩에서 해당 예제를 따라해 봤는데 두 번째 셀에서 GPU 메모리 사용이 22.6GB까지 올라갔다가 마지막 예측 단계에서 터져버립니다. 코랩에서 돌릴 때는 정상적으로 잘 돌아가긴 하는데 해당 예제가 GPU 메모리를 많이 잡아먹는 건가요? 아니면 여러번 확인을 했음에도 제가 무언가 오타를 내서 메모리를 점유하는 상황이 된 걸까요? 3090 24gb 사용 중입니다!

    • @it4928
      @it4928  년 전 +1

      안녕하세요! 정확히 어떻게 코드를 작성했는지는 몰라서 일반적으로 말씀드릴게요.
      우선 구글 코랩은 보통 GRAM이 11GB나 15GB gpu를 할당해주는 것으로 알고 있어요.(코랩에서 !nvidia-smi 를 치면 어떤 GPU가 할당됐는지 확인 가능) 개인적으로 사용하는 컴퓨터에 3090 (24GB) 이면 코랩 예제를 실행하기에는 GRAM은 여유가 있는 것 같아요. 컴퓨터에 다른 코드에서 이미 GPU를 사용하고 있어서, 해당 예제 실행시 남은 GRAM이 없는 상태는 아닌지 점검해보는 것도 방법일 수 있을 것 같아요~

    • @Jun4Junyon
      @Jun4Junyon 년 전

      @@it4928 코드는 영상에 것을 그대로 따라했고 주피터랩에서 실행실패한 코드를 그대로 복사 붙여넣기 해서 코랩으로 실행했을 때에는 문제없이 잘 돌아갔습니다. 그래서 코랩은 서버에서 돌려줘서 메모리 할당이 많아서 돌아 간 것이라 생각했는데 신기하네요. 답변 감사드립니다.

  • @user-oh9my8oq8o

    3번째부터 오류가 계속 나는데 어떻게 해결을 해야할까요?

  • @it4928
    @it4928  2 년 전 +4

    >> 이번 영상 Colab 코드 파일 공유: colab.research.google.com/drive/1sNH2Jx127YHg0QrPqc4r4AojqRpOJQy5?usp=sharing
    텍스트 분석을 통해 인사이트를 도출하고 싶으시다면? class101.page.link/UPur
    ← [Class101 X 꽃부리 AI] 자연어처리 입문 강의 링크

  • @goddroom8025
    @goddroom8025 5 개월 전

    resnet50_pre = tf.keras.applications.resent.ResNet50이부분에서 module 'keras.api._v2.keras.applications' has no attribute 'resent'이렇게 레즈넷 모델이 없다고 에러 뜨는데, 에러 해결 어떻게 하나요?

    • @flatfff5711
      @flatfff5711 개월 전

      resent 이라고 중간에 오타나신거 같은데 수정해서 다시 한 번 해보시면 어떨까요?

  • @user-no1uw4vm3m

    개랑 고양이 로컬 파일 불러오는게 안되는데 어떻게하는건가요? ㅠㅠ

    • @it4928
      @it4928  년 전 +1

      이번 영상에서 불러오는 파일은 tensorflow_datasets 라이브러리에서 웹상에 있는 데이터를 불러오는 방식이이에요~ 오늘도 코드는 잘 작동하는 것 확인했는데, 이번 영상 Colab 코드 파일 공유드려요! 참고해주세요: colab.research.google.com/drive/1sNH2Jx127YHg0QrPqc4r4AojqRpOJQy5?usp=sharing

  • @flatfff5711
    @flatfff5711 개월 전

    지금 해보니까 11번 검은 고양이 사진이 paper_towel로 분류되네요 ㅋㅋㅋㅋㅋㅋㅋ 무려 15.61%라서 2위 egyptian_cat보다 4%p 높음 ㅋㅋㅋㅋ

  • @user-cz4dy7jo8z
    @user-cz4dy7jo8z 2 년 전

    pred = resnet50_pre.predict(img_resized.reshape([1, 224,224,3 ])) 이 코드에서 cannot reshape array of size 163968 into shape (1,224,224,3) 다음과 같은 오류가 납니다. ㅠ 사이즈 조정을 해야되는 것 같은데, 어떻게 해결할 수 있을까요...?

    • @it4928
      @it4928  년 전

      그동안 너무 바빠서 유튜브를 못하다보니 답장이 넘 늦었네요 ㅠ 영상에서 해당 코드 위에 있는 "img_resized = cv2.resize(img, (224,224))" 이 코드가 앞에 필요합니다. 말씀하신 사이즈 조정을 하는 부분입니다.

  • @user-xc4em2gu8h

    리눅스 환경에서 주피터나 장고로도 할 수 있나요?

    • @it4928
      @it4928  년 전

      Colab이 리눅스 기반 주피터 노트북 환경이라고 보시면 되어요~ 직접 Local이나 클라우드 서버에 리눅스에 주피터 노트북 환경 구축해서 사용하셔도 물론 되구요! 다만 이번 영상에 사용하신 라이브러리들을 pip install이나 conda install 통해 미리 설치해주셔요 돼요~
      장고는 웹프로그래밍 프레임워크인데, 이번 영상의 코드는 웹서비스용으로 만들어진 것은 아니라 그럴 경우 코드 수정이 필요해요. 참고로 웹서비스에서 머신러닝을 호출하게 하려면 TensorFlow Serving을 기술을 사용할 수 있어요.
      (참고) 이번 영상 Colab 코드 파일 공유: colab.research.google.com/drive/1sNH2Jx127YHg0QrPqc4r4AojqRpOJQy5?usp=sharing

  • @user-ti6fk6nd3s
    @user-ti6fk6nd3s 년 전 +1

    두번째 코드부터 오류가 생기는데 똑같이 입력했거든요 ㅠ 어떤 문제일까요?

    • @user-cg1uc3pe8p
      @user-cg1uc3pe8p 년 전 +5

      url이 바뀌었나봐요 ㅋㅋ 밑에 코드를 다운로드 코드전에 추가해보세요 ㅎㅎ
      setattr(tfds.image_classification.cats_vs_dogs, '_URL',"download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_5340.zip")

    • @it4928
      @it4928  년 전 +1

      바빠서 유튜브를 너무 오랜만에 해서 답장이 늦었네요 ㅠ 당시 tfds 라이브러리 특정버전에서 URL 주소 관련 문제가 있었던 것 같아요. 오늘 코드를 실행해봤을 때는 문제없는 것 확인했어요(2022.09.15). 혹 에러가 생기시면 '처음처럼' 님 댓글에 있는 방식 적용해보시면 될 것 같아요. 참고하실 수 있도록 전체 Colab 코드 파일 공유드려요: colab.research.google.com/drive/1sNH2Jx127YHg0QrPqc4r4AojqRpOJQy5?usp=sharing

  • @user-me6ke1ih9h
    @user-me6ke1ih9h 2 년 전

    혹시 cats_vs_dog는 폴더명인가요? 저부분이 파일 위치인거 같은데 맞나요
    그리고 폴더안에 train test 이렇게 저장을 해놔야되나요?

    • @it4928
      @it4928  2 년 전

      질문을 주셨네요~“cats_vs_dogs”는 tensorflow data set 라이브러리에서 온라인으로 제공해주는 data set들 여러 개 중에 한 가지의 이름입니다^^ www.tensorflow.org/datasets/catalog/cats_vs_dogs

  • @dusimko7060
    @dusimko7060 2 년 전

    제가 원하는 데이터는 따로 사용못할까요?ㅜ

    • @it4928
      @it4928  2 년 전

      개인적인 일이 있어서 답변이 늦어 죄송해요 ㅠ 원하시는 image파일을 구글드라이브에 올리시고, "코랩 구글 드라이브 마운트"라고 구글링하시면 방법이 나오는데 코랩에서 해당 이미지를 cv2 라이브러리를 이용해서 불러오실 수 있어요. 그러면 해당 이미지에 대해 학습된 ResNet 딥러닝 모델을 통해 정답을 예측해볼 수 있습니다. 다만 ResNet 모델은 이미 정의된 1000개의 class에 대해서만 정답을 줄 수 있어요. 만약 이 1000개에 없는 정답을 맞추는 인공지능을 만들고 싶으시면 새롭게 모델을 학습시켜야 해요.

    • @user-rr5mq6vs6m
      @user-rr5mq6vs6m 5 개월 전

      ​@@it4928새롭게 학습시키고 싶은 경우, 어떤 함수를 사용해야 할까요..?ㅠ

  • @user-np5ct1oe8b
    @user-np5ct1oe8b 년 전 +4

    from tensorflow.keras.applications.imagenet_utils
    이 부분이 오류가나는데 제 컴퓨터에 이 파일이 없는건가요? 그런거면 넣는 방법은 무엇인가요?

    • @user-np5ct1oe8b
      @user-np5ct1oe8b 년 전 +1

      텐서플로랑 케라스 다 설치해도 계속 오류가 나요
      for i,instance in enumerate(decoded_pred[4]): 이부분에서 decoded_pred[]가 정의되지 않았다고 나오네요..

    • @it4928
      @it4928  년 전

      그동안 너무 바빠서 유튜브를 못해서 답장이 넘 늦었네요ㅠ 이 부분은 해결하신 것 같은데, Local에서 작업하시는 거면 tensorflow library 설치가 필요해요(커맨드에서 pip install 이나 conda install 사용). Google Colab을 사용하시면 따로 설치하지 않아도 Colab환경에 tensorflow가 자동으로 설치되어 있어요.

    • @it4928
      @it4928  년 전

      @@user-np5ct1oe8b 해당 코드 위에 decoded_pred = decode_predictions(pred) decoded_pred[0] 으로 해야 해요(decoded_pred가 리스트인데, 이미지를 한 개만 입력하도록 했기 때문에 원소가 한 개밖에 없어요)