2022.7.14 농산물 품질분류 프로젝트 8일차

정성우·2022년 7월 14일
0

학습한내용

import torch
import torch.nn as nn
import numpy as np
import pandas as pd
loaded_model = torch.load(f='./lr.pt')

#학습된 모델을 불러와서 원하는 라벨을 넣어 너비,길이,무게를 알려줌
def display_results(modelss, x):
    model = nn.Linear(54,3)
    model.load_state_dict(modelss)
    model.eval()
    with torch.no_grad():
        outputs = model(x)
        width=outputs[0]
        weight=outputs[1]
        height=outputs[2]
    return width,weight,height
classes = ['apple_fuji_l', 'apple_fuji_m', 'apple_fuji_s', 'apple_yanggwang_l', 'apple_yanggwang_m',
        'apple_yanggwang_s', 'cabbage_green_l', 'cabbage_green_m', 'cabbage_green_s', 'cabbage_red_l',
        'cabbage_red_m', 'cabbage_red_s', 'chinese-cabbage_l', 'chinese-cabbage_m', 'chinese-cabbage_s',
        'garlic_uiseong_l', 'garlic_uiseong_m', 'garlic_uiseong_s', 'mandarine_hallabong_l',
        'mandarine_hallabong_m', 'mandarine_hallabong_s', 'mandarine_onjumilgam_l', 'mandarine_onjumilgam_m',
        'mandarine_onjumilgam_s', 'onion_red_l', 'onion_red_m', 'onion_red_s', 'onion_white_l', 'onion_white_m',
        'onion_white_s', 'pear_chuhwang_l', 'pear_chuhwang_m', 'pear_chuhwang_s', 'pear_singo_l', 'pear_singo_m',
        'pear_singo_s', 'persimmon_bansi_l', 'persimmon_bansi_m', 'persimmon_bansi_s',
        'persimmon_booyu_l', 'persimmon_booyu_m', 'persimmon_booyu_s', 'persimmon_daebong_l',
        'persimmon_daebong_m', 'persimmon_daebong_s', 'potato_seolbong_l', 'potato_seolbong_m',
        'potato_seolbong_s', 'potato_sumi_l', 'potato_sumi_m', 'potato_sumi_s', 'radish_winter-radish_l',
        'radish_winter-radish_m', 'radish_winter-radish_s']

classess=[39,38,37,42,41,40,45,44,43,48,47,46,33,32,31,24,23,22,6,5,4
,3,2,1,54,53,52,51,50,49,36,35,34,30,29,28,12,11,10,15,14,13,9,8,
7,18,17,16,21,20,19,27,26,25]

data=pd.get_dummies(classes)
label=torch.Tensor([index])
label=int(torch.Tensor.numpy(label)[0])
for i in range(0,54):
    if i==classess[label]-1:
        x=data.values[i]
x=np.array(x)
x=torch.Tensor(x)
stat=display_results(loaded_model,x)
print(stat)

실행결과

사과부사특의 경우 다음과 같은 너비,길이,무게를 갖고있음



flask를 이용 웹에 모델을 연동하여 classification과 linear regression 결과를 제공

학습한 내용 중 어려웠던 점 또는 해결못한 것들

해결방법 작성

학습 소감
정제된 데이터가 아닌 일반적인 이미지가 들어올때도 잘 분류할수 있는 방법은 무엇인지 알아봐야겠다. flask로 웹에 연동하는 부분이 재미있었다.

0개의 댓글