Один вариант, который я пробовал, - это выборка Vocab и сохранение с экстрафайлами. Arg
import torch
import pickle
class Vocab(object):
pass
vocab = Vocab()
pickle.dump(open('path/to/vocab.pkl','w'))
m = torch.jit.ScriptModule()
## I am not sure about the usage of this arg, the docs didn't help me
extra_files = torch._C.ExtraFilesMap()
extra_files['vocab.pkl'] = 'path/to/vocab.pkl'
# I also tried pickle.dumps(vocab), and directly vocab
torch.jit.save(m, 'scriptmodule.pt', _extra_files=extra_files)
## Load with extra files.
files = {'vocab.pkl': ''}
torch.jit.load('scriptmodule.pt', _extra_files = files)
. Это дает
TypeError: import_ir_module(): incompatible function arguments. The following argument types are supported:
1. (arg0: Callable[[List[str]], torch._C.ScriptModule], arg1: str, arg2: object, arg3: torch._C.ExtraFilesMap) -> None
. Другой вариант, очевидно, заключается в том, чтобы загружать рассол отдельно, но я искалопция одного файла.
было бы неплохо, если бы можно было просто добавить vocab к torchscript ... также было бы неплохо узнать, если есть какая-то причина, по которой я этого не делаю, о которой я, очевидно, не знаю.