目前要訓練的label如下:
用這樣的方式訓練了一個模型:
dblock = DataBlock( blocks = (ImageBlock, MultiCategoryBlock),
get_x = get_x, get_y = get_y,
item_tfms = RandomResizedCrop(128, min_scale=0.35))
dls = dblock.dataloaders(label_df)
learn = cnn_learner(dls, resnet18, metrics=partial(accuracy_multi, thresh=0.2))
learn.fine_tune(5, base_lr=3e-3)
將結果存起來並呼叫他
joblib.dump(learn,'joblib_export.pkl')
clf2 = joblib.load('joblib_export.pkl')
我嘗試用他辨識
img = cv2.imread('./test_picture/clothes_1.jpg')
print(clf2.predict(img))
img = cv2.imread('./test_picture/clothes_3.jpg')
print(clf2.predict(img))
img = cv2.imread('./test_picture/clothes_6.jpg')
print(clf2.predict(img))
img = cv2.imread('./test_picture/clothes_7.jpg')
print(clf2.predict(img))
可是有結果跑不出來!想了解為什麼會有結果是空的,
TensorBase出來的那個應該是權重值?我要怎麼看該數值是哪一個Label,有點懷疑Short並沒有被放進去
或是可以直接調成最大的就是辨識結果就好(他可能會抓超過多少值以上才顯示?)
辨識過程詳細參考: https://www.kaggle.com/code/marissafernandes/clothes-image-classifier