Validation PyTorch多处理验证冻结

Validation PyTorch多处理验证冻结,validation,parallel-processing,multiprocessing,pytorch,Validation,Parallel Processing,Multiprocessing,Pytorch,我试图通过许多图像来测试模型。因此,我创建了N个网络实例,并将其与数据一起发送到函数,然后等待丢失 from torch.multiprocessing import Process, Queue, cpu_count def _multiprocFunc(aQ, _procID, inData, labelsImg, _model_valid): _tmp = _model_valid(inData) ############### ALL P

我试图通过许多图像来测试模型。因此,我创建了N个网络实例,并将其与数据一起发送到函数,然后等待丢失

from torch.multiprocessing import Process, Queue, cpu_count

def _multiprocFunc(aQ, _procID, 
                   inData, labelsImg, _model_valid):
    _tmp = _model_valid(inData) ############### ALL PROCESSES HANG HERE ###############
    crit = LossFunc.diffraLossSq_perImage()
    result = crit(_tmp, labelsImg).detach().numpy()
    aQ.put(list([_procID, result]))

def validation(X_valid, Y_valid, model_valid, valid_device = 'cpu'):
    
    #... some code here

    modelSet = []
    while(numProcessed<numProc):
        if (not aQ.empty()):
            aQElement = aQ.get()
            #... some code here

        if(not done):
            procID += 1
            modelSet.append(copy.deepcopy(model_valid))
            Process(target = _multiprocFunc, args = (aQ, procID, 
                                       data, Labels, modelSet[-1])).start()
来自torch.multiprocessing导入进程、队列、cpu\U计数的

定义多过程函数(aQ,_procID,
inData,labelsImg,_model_valid):
_tmp=模型有效(inData)所有流程挂在这里###############
crit=损失衍射图像()
结果=crit(_tmp,labelsImg).detach().numpy()
aQ.put(列表([[u procID,result]))
def验证(X_有效、Y_有效、型号_有效、有效_设备='cpu'):
#... 这里有一些代码
模型集=[]
while(numProcessed)