🐱🏍 Application Programmable Interface
컴퓨터끼리 통신할 수 있도록 하는 인터페이스
사용자가 프로그래밍하여 원하는 서비스를 구현할 수 있음
🐱🏍 REpresentational State Transfer API
웹상에서 http 프로토콜을 통해 원격으로 프로그램을 제어(이용)하는데 사용
Gradio, Hugging Face API를 사용하여 간단한 딥러닝 앱 만들기를 수행하였다.
Python 기반의 머신 러닝 모델 배포 및 인터페이스 생성을 위한 라이브러리
✅ 실행된 캔버스에 그림을 그리면 이를 180도 회전시켜주는 프로그램
import gradio as gr
def predict(image):
return image.rotate(180)
app = gr.Interface(fn=predict,
inputs=gr.Image(source="canvas", type="pil"),
outputs="image",
live=True)
app.launch()
사전 학습된 모델을 제공하여 빠르고 정확한 모델 구축 및 활용 가능
✅ 감정분석 프로그램
from transformers import pipeline
classifier = pipeline("sentiment-analysis")
classifier("I've been waiting for a HuggingFace course my whole life.")
✅ 챗봇
이는 허깅페이스 사이트 내에 있는 챗봇서비스 관련 코드와 사용예시이다.
내가 코드를 제대로 보지 못하고
🤷♀️ 왜 먼 말을 해두 배고프다고만하지?^^ 했는데
코드가 애초에 'How are you?', 'I love you', 'I'm very hungry' 중 랜덤으로 출력되는 것이였다.
이처럼 허깅페이스에서 제공하는 모델을 사용해 내가 원하는 서비스를 구현할 수 있다!
이제 남은건 프로젝트뿐!
프로젝트 시작을 우리의 담임선생님께서 맡아주셨다.✨🏆💡🙆♀️👍
여러 번 강조해도 부족한 데이터 전처리 총정리를 해주셨다👍
train, val, test로 데이터를 분할하는 이유는 다음과 같다.
💡 일반화된 성능을 얻기 위해서!
일반화된 성능이란 train 뿐만 아니라 val, test 모두에서 좋은 성능을 보이는 경우를 말한다.
- 변수 삭제
- NaN 채우기
- 변수 추가
- 가변수화
- x, y 분할
- 스케일링
- KNN Imputer
⭐ 순서
위 순서는 절대적인 것은 아니다. 단, 2번과 4번은 순서를 꼮 지켜줘야한다!! 꼮!!!
2번 NaN 채우기가 가변수화보다 먼저 수행되어야 한다.
⭐ KNN Imputer
지난 프로젝트 때 성능을 높이는 데 큰 역할을 한 KNN Imputer!(나는 못씀)
결측치(missing values)를 처리하기 위한 대표적인 방법
K개의 가장 가까운 이웃을 활용하여 값을 추정하는 방법
# 1. 라이브러리 가져오기
from sklearn.impute import KNNImputer
# 2. 인스턴스 생성
imputer = KNNImputer(n_neighbors=5, metric='nan_euclidean')
# 3. 결측치 처리
imputed_data = imputer.fit_transform(data)
이제서야 알아서 너무 아쉬울정도인 mlflow!
머신 러닝 실험을 관리하고 추적하기 위한 오픈 소스 플랫폼
# 1. mlflow 설정 및 추적
mlflow_uri = "sqlite:///mlflow.db"
mlflow.set_tracking_uri(mlflow_uri)
# 2. 실험 만들기
exp_id = mlflow.create_experiment("exp")
exp_id
# 3. 새 실험에 tracking 하기
with mlflow.start_run(): # 추적 시작 지정
# 파일 자동관리 시작
mlflow.keras.autolog()
# 모델 선언 및 훈련
# ...
# 파일 자동관리 끝
mlflow.sklearn.autolog(disable = True)
# 버전으로 가져오기
model_uri = "models:/CarSeat/1"
model1 = mlflow.sklearn.load_model(model_uri)
# 최신버전으로 가져오기
model_uri = "models:/CarSeat/latest"
model2 = mlflow.sklearn.load_model(model_uri)
# 운영중인 버전 가져오기
model_uri = "models:/CarSeat/production"
model3 = mlflow.sklearn.load_model(model_uri)
# 예측
model1.predict(x)