在调用MAR之前,有没有办法在多个文件之间拆分模型?
例如,如果我有一个文件base_model.py
import torch
from torch import nn
class BaseModel(nn.Module):
...和一个继承自BaseModel的模型
from base_model import BaseModel
class FullModel(BaseModel):
...处理程序也是如此。我不知道如何在多个文件之间拆分代码。
发布于 2021-05-06 18:27:55
简短的回答:是的。
您可以将主模型文件和其余文件作为额外文件传递。例如:使用--model-file ./xxx/aaa/full_model.py的full_model.py和使用--extra-files ./xxx/bbb/base_model_1.py,./xxx/ccc/base_model_2.py,./xxx/ddd/mini_handler.py,./xxx/eee/mini_handler_2.py的所有其他文件。在打包为.mar文件之前,所有文件都将放在一个文件夹中。考虑到这一点,您可能需要对python文件中的导入进行一些更改。总之,它应该类似于
torch-model-archiver \
--model-name recommendation \
--version 1.0 \
--model-file src/model/full_model.py \
--serialized-file model/model.pt \
--handle model_handler.py \
--extra-files \
"dd/utils/utils.py,\
ee/network_config.json,\
ff/utils/preprocess.py,\
gg/utils/data_loader.py\现在,您可以通过普通导入在模型处理程序中使用预处理或数据加载器中的函数
https://stackoverflow.com/questions/66496016
复制相似问题