![](/img/trans.png)
[英]AttributeError: module 'os' has no attribute 'uname'. Did you mean: 'name'?
[英]iterative.ai mlem.api.save() | AttributeError: __name__. Did you mean: '__ne__'?
目標:將 model 保存為mlem model,不帶sample_data
。
我計划在部署中加載mlem
model 文件,如下所示:
from mlem.api import load
model = load('models/mlem-model')
為此,我需要加載現有模型,然后save()
為mlem
model。
save()
創建一個 model 二進制文件和一個mlem
元數據文件。
models/
├── mlem-model
└── mlem-model.mlem
我訓練過模型,所以不要將sample_data
作為參數傳遞給save()
。
代碼
from fastai.vision.all import *
import mlem
model = load_learner('models/model.pkl', cpu=True)
model.load('models/weights.pth')
mlem.api.save(model, 'models/mlem-model') #, sample_data=df)
追溯
(venv) me@laptop:~/BitBucket/project$ python3 tools/export_pickle_as_mlem.py
Traceback (most recent call last):
File "/home/me/BitBucket/project/tools/export_pickle_as_mlem.py", line 18, in <module>
mlem.api.save(model, 'models/my-model-mlem')
File "/home/me/miniconda3/envs/imagedxapp/lib/python3.10/site-packages/mlem/telemetry.py", line 50, in inner
return f(*args, **kwargs)
File "/home/me/miniconda3/envs/imagedxapp/lib/python3.10/site-packages/mlem/core/metadata.py", line 122, in save
meta = get_object_metadata(
File "/home/me/miniconda3/envs/imagedxapp/lib/python3.10/site-packages/mlem/core/metadata.py", line 53, in get_object_metadata
return MlemModel.from_obj(
File "/home/me/miniconda3/envs/imagedxapp/lib/python3.10/site-packages/mlem/core/objects.py", line 740, in from_obj
model_type = model_hook.process(model)
File "/home/me/miniconda3/envs/imagedxapp/lib/python3.10/site-packages/mlem/contrib/callable.py", line 213, in process
s = Signature.from_method(
File "/home/me/miniconda3/envs/imagedxapp/lib/python3.10/site-packages/mlem/core/model.py", line 236, in from_method
name=override_name or method.__name__,
File "/home/me/miniconda3/envs/imagedxapp/lib/python3.10/site-packages/fastcore/basics.py", line 497, in __getattr__
raise AttributeError(k)
AttributeError: __name__. Did you mean: '__ne__'?
import pickle
import torch
with open('pkl_file.pkl', 'rb') as pkl_file:
data = pickle.load(pkl_file)
model = torch.load('pth_file.pth')
torch.save(model, open('mlem_file', 'wb'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.