如何在桌面上使用python在另一台机器上部署使用fastai制作的.pkl机器学习模型

如何在桌面上使用python在另一台机器上部署使用fastai制作的.pkl机器学习模型,python,machine-learning,fast-ai,Python,Machine Learning,Fast Ai,我已经按照文档和视频介绍了如何创建一个ML模型,该模型可以检测不同的家庭护理产品,如肥皂和除臭剂等。 我现在得到了一个模型,这个模型的错误率应该是0.03。。。 据我所知,这是一个大约97%精确的模型,但我不知道如何在另一台机器上的其他图像上进行预测。我使用文档中所述的“learn.export('Home\u Care\u Model.pkl')导出了它,但运气不好 现在在文档中声明我需要再次使用类和训练集等来定义模型,但是现在我在另一台计算机上,所以我没有这些文件,我无法在web上运行它,因

我已经按照文档和视频介绍了如何创建一个ML模型,该模型可以检测不同的家庭护理产品,如肥皂和除臭剂等。 我现在得到了一个模型,这个模型的错误率应该是0.03。。。 据我所知,这是一个大约97%精确的模型,但我不知道如何在另一台机器上的其他图像上进行预测。我使用文档中所述的“learn.export('Home\u Care\u Model.pkl')导出了它,但运气不好

现在在文档中声明我需要再次使用类和训练集等来定义模型,但是现在我在另一台计算机上,所以我没有这些文件,我无法在web上运行它,因为它应该作为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')
来自fastai导入*
来自fastai.vision import*
%matplotlib内联
%重新加载下一个自动加载
%自动加载2
导入操作系统
os.environ['KMP\u DUPLICATE\u LIB\u OK']='True'
path=path('我的文件路径…')
打印(路径)
对于('soap','deo')中的文件夹:#我有更多,但它会占用更多空间。
打印(文件夹)
验证图像(路径/文件夹,最大大小=500)
np.随机种子(42)
data=ImageDataBunch.from_文件夹(路径,序列='),有效的_pct=0.3,ds_tfms=get_transforms(),
size=224,num\u workers=4)。规范化(imagenet\u统计)
数据类
从fastai.metrics导入错误率
学习=创建cnn(数据,models.resnet34,度量=错误率)
学习
defaults.device=torch.device('cuda')
学习。适应一个周期(5)
学会解冻
learn.lr_find()
learn.recorder.plot()
学习。拟合一个循环(4,最大lr=切片(3e-6,3e-5))
学习。保存('day2Test\u 02')
从fastai.widgets导入*
ds,idxs=DatasetFormatter()。从(学习)
ImageCleaner(ds、idxs、路径)
df=pd.read\u csv(路径/'cleaned.csv',header='infer')
df.head()

df[(df['name'])apply(lambda x:len(x)你能部署模型吗?我面临着同样的问题。没有工作让我感到困扰,我不得不把这个放在次要位置:(你能部署模型吗?我面临着同样的问题。没有工作让我感到困扰,我不得不把这个放在次要位置:(