추가 코드 없이 파이썬 감정 인식 노트북을 API로 변환

Jupyter 노트북에서 정서 인식을 훈련하고 Cuttle을 사용하여 추가 코드 없이 Flask API 프로젝트로 변환


Jupyter 노트북을 자주 사용해서 개발과 테스트를 하는 사람에게는 언제든지 코드를 복사하고 붙이는 데 익숙해질 수 있습니다.

Deleting test snippets, using a different IDE to compile and test your code again, and developing an API is just a few of the time-consuming tasks an ML developer is used to.


만약 우리가 API 프로젝트를 구축하는 데 필요한 단조롭고 무미건조한 샘플 코드를 자동화할 수 있다면 정말 좋지 않겠습니까?***여기서 우리는 Jupyter 노트북에서 정서 식별 모델을 훈련시키고 이를 Flask API 프로젝트로 전환할 것이다. 추가 코드가 전혀 필요 없다!

의존 관계


pip install 
tensorflow==2.5.0 Keras==2.4.3 numpy==1.19.5 opencv-python==4.4.0.44
ML 노트북을 Flask API 프로젝트로 변환하기 위해 Cuttle을 설치해야 합니다.
pip install cuttle

데이터 세트


너는 감정 식별에 있어서 어떤 데이터 집합을 사용할 수도 있고, 자신의 데이터 집합을 만들 수도 있다.본고에서 우리는 Kaggle에서 제공한 감정 식별 데이터 집합을 사용할 것이다.너는 반드시 here을 찾아야 한다.이 데이터 세트에는 분노, 혐오, 공포, 즐거움, 중립, 슬픔, 놀라움 등 7가지 이미지가 포함되어 있다.다른 클래스를 추가하려면 새 디렉터리를 만들고 클래스에 속하는 그림을 추가하십시오.
다운로드한 데이터 집합과 같은 디렉터리에'train'과'validation'폴더를 포함하는 수첩을 만듭니다.

수입하다


데이터 세트 확장


ImageDataGenerator는 이미지 강화, 각 트레이닝 이미지의 변환을 사용하여 모델에 맞출 수 있고 사용 가능한 경우 모든 프로세싱 기능을 전달할 수 있습니다.
이미지의 배율을 조정한 이유는 색상 범위가 [0-255] 사이이고 배율을 조정하면 [0-1] 범위의 각 픽셀 값이 변경되기 때문입니다.여기서 모델의 목표 크기는 48x48, 일괄 처리 크기는 64로 정의합니다.

모형 훈련


우리는 여기서 CNN을 정의했지만, 예를 들어 VGG16이나 ResNet, 또는 이전 학습을 사용할 수 있는 모든 모델을 선택할 수 있습니다.
교육이 완료되면 모델은 지정된 경로에 저장됩니다.

정서 식별


우리는 지금 모형을 불러와서 그림을 만들고 테스트합니다.이 단계에서 cuttle을 도입하고 생성된 함수를 모든 전방 응용 프로그램에서 사용할 수 있는 API로 바꿉니다.
테스트 이미지의 테스트를 사용합니다.“jpeg”.
출처:
우리가 모델 예측에서 얻은 결과는 두려움이다.모델의 정확성과 결과에 만족할 때까지 더 많은 이미지를 계속 테스트하세요.API 프로젝트로 변환하는 방법을 살펴보겠습니다.

채찍질을 해제하다 카르텔 초기화


다음과 같이 "cuttle init"를 사용하여 카르텔을 초기화하고 사용 중인 노트북의 이름을 입력합니다.
출처 - 작성자

카르텔 환경 조성


이 단계에서 환경 이름을 지정하고 사용 중인 플랫폼과 사용할 변환기를 지정합니다.우리는 이런 상황에서 플라스크 변압기를 사용하고 싶다.편리한 환경 이름을 선택할 수 있습니다.나는'정서기록'을 예로 들었다.
출처 - 작성자
이 점에서 너의 카르텔.제이슨은 다음과 같아야 한다.
출처 - 작성자
구성을 작성한 후 카르텔 구성을 포함하도록 Jupyter 노트북을 편집할 때입니다.코드의 마지막 부분만 편집해서 API 라우트를 정의하고 출력 구성을 설정할 수 있습니다.
셀에 구성 추가하기
우리는 카르텔 설정을 사용하여 두 가지 주요 조작을 실행한다. 예를 들어 과 같다.
  • 은 스크립트를 실행할 때마다 다시 훈련하지 않도록 훈련 절차를 사용하지 않고 저장된 모델 파일에서 불러옵니다.
  • API를 호출할 때마다 수행할 셀과 필요한 매개 변수
  • 지정
    셀을 비활성화하려면 셀 시작 부분에 이 구성을 추가합니다.
    #cuttle-environment-disable emotion-rec
    
    이제 구성을 추가하고 스크립트를 다음과 같이 API로 변환합니다.
    우리는 두 가지 설정을 설정하고 있다. 그것이 바로 카르텔 환경 설정과 카르텔 환경 분배 설정이다.그것들은 각각 단원격 범위와 줄 범위다.단위 범위의 설정은 단위 전환 기간에 필요한 설정을 설정합니다.줄 범위의 설정은 변수를 설정할 수 있습니다.
    첫 번째 줄에서, 우리는 단원 범위의 설정을 설정하고, 환경 이름, 방법과 우리가 선택한 경로를 지정합니다.요청 방법과 output 변수에서 설정을 가져올 수 있도록 변수 'file' 을 설정했습니다. 이것은 우리의 응답입니다.

    여기 있다 바꾸다


    마지막 단계는 우리가 사용해 왔던 환경 이름을 사용하여 변환을 잘라내는 것입니다.토론을 시작하겠습니다.
    출처 - 작성자
    이 단계에서 환경 이름을 포함하는 다른 하위 디렉터리로 구성된 출력 디렉터리를 볼 수 있습니다.이 디렉토리로 이동하여 API로 변환된 코드를 확인하십시오.이 파일을 다음과 같이 실행합니다.
    출처 - 작성자
    현재, 우리의 코드는 기본적으로 로컬 호스트 포트 5000에서 실행됩니다.이 점을 테스트하려면 우체부를 사용하여 그림을 보내십시오.
    테스트.jpeg은 POST 요청을 통해 flask API로 전송됩니다.출처 - 작성자
    이제 API 프로젝트를 배포할 수 있습니다!카르텔은 노트북을 스크립트나 파이프로 변환할 수도 있습니다.

    리소스


    카르텔 사이트:
    Github:cuttle.it
    가지 꽂기
    트위터에서도 저희를 찾을 수 있어요@

    좋은 웹페이지 즐겨찾기