I tried to build “*.pth” file for android , the file is generated successfully, however, when i call the function “inference”, there is a problem:
AttributeError: ‘RecursiveScriptModule’ object has no attribute ‘inference’
This is my code:
def optimizeSave(model, model_folder):
# Scripting the entire model
scripted_module = torch.jit.script(model)
# scripted_inference_method = torch.jit.script_method(model.inference)
# scripted_module.inference = scripted_inference_method
scripted_module_optimized = optimize_for_mobile(scripted_module)
scripted_module_optimized._save_for_lite_interpreter(f"{model_folder}/inference.pt")
class MyModel(nn.Module):
def __init__(self):
super(MyModel, self).__init__()
def forward(self, x):
return x
@torch.jit.export
def inference(self, x: str)->str:
# Dummy implementation for string processing, normally you'd do some tensor operations
return f"Processed string: {x}"
model = MyModel()
model.eval()
optimizeSave(model, "models")
print("finished")
optimized_model = torch.jit.load("models/inference.pt")
print(optimized_model.inference("hell world"))
Anyone know why?