Проблема загрузки модели PyTorch в приложение с виртуальной машины

У меня возникла проблема с загрузкой модели PyTorch в приложение, которое я разрабатываю на виртуальной машине. Я создал экземпляр модели, используя тот же путь к файлу, который корректно работает в автономном сценарии, но когда я пытаюсь загрузить его из приложения, я получаю ошибку сегментации.

Вот код из файла test.py на виртуальной машине:

model = UC_Model(pModel_filepath="/mnt/confiance/common/UC_Data_Folder/UC_La_Organisacion_Anomaly_Detection/models/trained_perceiver/best_model_spectra")
print("model: ", model)

Модель загружается нормально:

model:  <UCLaOrganisacionAnomalyDetection.UC_Model object at 0x7f687d869a00>

Но когда я делаю это из разрабатываемого приложения, возникает следующая проблема:

   .create Model from '/mnt/confiance/common/UC_Data_Folder/UC_La_Organisacion_Anomaly_Detection/models/trained_perceiver/best_model_spectra'
./kaa.sh: line 48: 1870463 Segmentation fault      (core dumped) python3 kaa.py $1

Así que estoy en la misma máquina virtual.

Вот код приложения, которое я создал для загрузки модели из файла :

#-------------------------------------------------------------------------------
## Launch the inference computation
# @param pDictParams : parameter dictionary
# @return parameter dictionary updated
def launchInference(pDictParams):
    TUI.TUIprint("Action: Inference","Action")

    # create the model instance
    if has_method(pDictParams['pluginUCXAI'],'UCXAI_createModel'):
        print("pDictParams['pluginUCXAI']: ", pDictParams['pluginUCXAI'])
        aiModel=pDictParams['pluginUCXAI'].UCXAI_createModel(pDictParams)

В pDictParams['pluginUCXAI'] у нас есть экземпляр класса UCLaOrganisationAnomalyDetection_Xplique:

import UCLaOrganisacionAnomalyDetection

##------------------------------------------------------------------------------
## Class for Use case vs Library
class UCLaOrganisacionAnomalyDetection_Xplique(kaasrc.plugin_collection.Plugin):
    #---------------------------------------------------------------------------------
    ## Class constructor
    # @param self : l'instance de la classe
    def __init__(self):
        super().__init__()
        self.nom = "UCLaOrganisacionAnomalyDetection"
        self.description = "Detect bad vibrations in time series"
        self.modeles = ["PerceiverLogit"]
        self.bibliotheque = "Xplique"
        self.methodes = ["Hsic","Occlusion","KernelShap","Rise","Lime","Sobol"]
        self.metriques = None
        self.UC=UCLaOrganisacionAnomalyDetection

    #---------------------------------------------------------------------------
    ## Create an instance of the model
    # @param pDictParams : parameter dictionary
    # @return the instance of the model
    # @remark Call directly UC_createModel() of UC model
    def UCXAI_createModel(self,pDictParams):
        return self.UC.UC_createModel(pDictParams)

А UC.UC_createModel(pDictParams) - это:

#-------------------------------------------------------------------------------
## Create an instance of the model
# @param pDictParams : parameter dictionary
# @return the instance of the model
def UC_createModel(pDictParams):
    # shortcuts
    pModelBase=pDictParams['modelBase']
    pModelpath=pDictParams['modelpath']
    pModelfile=pDictParams['modelfile']
    pCode=pDictParams['code']

    # get model file
    ficModel=os.path.join(pModelBase,pModelpath,pModelfile)
    print("   .create Model from '%s'"%ficModel,flush=True)

    # create model instance from 'model' parameter
    aiModel=UC_Model(ficModel)
    print("      ",aiModel.name,"-/-",pCode,flush=True)

И я думаю, что дамп ядра приходит с aiModel=UC_Model(ficModel).

Я думаю, что это должно быть проблемой видеокарты. Я всегда ставлю CUDA=0 в приложении


Ответы (0 шт):