簡體   English   中英

迭代.ai mlem.api.save() | 屬性錯誤:__name__。 您是指“__ne__”嗎?

[英]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

加載 pickle 文件

with open('pkl_file.pkl', 'rb') as pkl_file:  
    data = pickle.load(pkl_file) 

用Torch加載.pth model文件

model = torch.load('pth_file.pth')

將 model 以 MLEM 格式保存到文件 object

torch.save(model, open('mlem_file', 'wb'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM