참고 ) https://wonhwa.tistory.com/50
- jupyter lab은 가상환경이 아닌 창에서 설치 시 모든 가상환경에서 사용 가능 ->
Jupyter lab 설치
pip install jupyterlab
가상환경에서 설치
(해당 프로젝트 가상환경 폴더)/scripts activate.bat
pip install ipykernel
ipykernel에 가상환경 이름 만들기
python -m ipykernel install --user --name 가상환경이름 --display-name 가상환경_표시이름
실행
jupyter lab
실시간으로 디렉토리가 업데이트된다.
필요한 라이브러리 설치
numpy , pandas
scikit-learn
matploblib
seaborn
python manage.py startapp ml_flow
def irisPredict(request):
# 원래 if~else로 구분지어야 하지만, 지금은 다양한 페이지로 생성하고 있기때문에
#if로만 걸러내어 Post인지를 따진다.
#Post가 request 일때
if request.method == 'POST':
form = request.POST
print(form)
print(len(form))
print(form['a'].isdigit())
if(len(form) > 4 and form['a'].isdigit() and form['b'].isdigit()
and form['c'].isdigit() and form['d'].isdigit() ):
model = pickle.load(open('static/models/iris_model_svc.pkl', 'rb'))
# 웹에서 입력되는 숫자값은 String 타입이여서 실제 float타입으로 형변환을 함.
data1 = float(form['a'])
data2 = float(form['b'])
data3 = float(form['c'])
data4 = float(form['d'])
arr = np.array([[data1,data2,data3,data4]])
# 해당 모델을 test_split 후 x_test의 shape을 확인해보면
# (37,4)로 2차원임을 확인할수 있다. 그래서 중괄호로 2번 감싸야한다.
pred = model.predict(arr)
context={'pred_result':pred}
else:
context={'warning':"값을 모두 숫자로 입력하세요."}
return render(request,'ml_deploy/iris_predict.html',context)