Я следовал документации fastai и видеороликам о том, как создать модель ML, которая может определять различные продукты для домашнего ухода, такие как мыло и дезодоранты и так далее. Теперь я пришел к тому, что у меня есть модель, которая предположительно работает с частотой ошибок 0,03 ... насколько я понимаю, она примерно на 97% точной модели, однако я понятия не имею, как прогнозировать другие изображения на другом компьютере. Я экспортировал его, используя "learn.export ('Home_Care_Model.pkl')", как сказано в документации, но безуспешно.
Теперь в документации говорится, что мне нужно было бы снова определить модель с помощью классов, учебных наборов и т. Д., Но теперь я нахожусь на другом компьютере, поэтому у меня нет этих файлов и Я не могу go запустить его в Интернете, поскольку предполагается, что он будет запускаться как сценарий python на любом рабочем столе (конечная цель).
То, к чему я иду, это то, где у меня есть один файл с несортированными изображениями, который затем при запуске модели разделит изображения на две разные папки в соответствии с прогнозом.
Я искал ответ на этот вопрос и, честно говоря, я не уверен если я просто недостаточно хорошо это понимаю или что-то в этом роде, потому что я теряю все силы, пытаясь заставить эту модель работать.
Вот мой тренировочный код:
from fastai import *
from fastai.vision import *
%matplotlib inline
%reload_ext autoreload
%autoreload 2
import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'
path = Path('my files path...')
print(path)
for folder in ('soap','deo'): # I have more but it will waist space.
print (folder)
verify_images(path/folder, max_size=500)
np.random.seed(42)
data = ImageDataBunch.from_folder(path, train='.', valid_pct=0.3, ds_tfms=get_transforms(),
size=224, num_workers=4).normalize(imagenet_stats)
data.classes
from fastai.metrics import error_rate
learn= create_cnn(data, models.resnet34, metrics=error_rate)
learn
defaults.device = torch.device('cuda')
learn.fit_one_cycle(5)
learn.unfreeze()
learn.lr_find()
learn.recorder.plot()
learn.fit_one_cycle(4, max_lr=slice(3e-6,3e-5))
learn.save('day2Test_02')
from fastai.widgets import *
ds, idxs = DatasetFormatter().from_toplosses(learn)
ImageCleaner(ds, idxs, path)
df = pd.read_csv(path/'cleaned.csv', header='infer')
df.head()
df[(df['name'].apply(lambda x: len(x)<5))]
np.random.seed(42)
db =(ImageList.from_df(df,path).random_split_by_pct(0.2).label_from_df().transform(get_transforms(), size= 224).databunch(bs=8)).normalize(imagenet_stats)
data.classes, data.c, len(data.train_ds), len(data.valid_ds)
db.classes, db.c,len(db.train_ds), len(data.valid_ds)
learn.data = db
learn.freeze()
learn.fit_one_cycle(4)
learn.save('day2Test_02_01')
learn.unfreeze()
learn.lr_find()
learn.recorder.plot()
learn.fit_one_cycle(4, max_lr=slice(3e-5,3e-4))
learn.save('dat2Test_test2')
interp = ClassificationInterpretation.from_learner(learn)
interp.plot_confusion_matrix()
learn.export('day2Test_test2.pkl')