Dicom डेटा प्रशिक्षण में विफल रहा है के द्वारा pytorch

0

सवाल

मैं एक समस्या के बारे में प्रशिक्षण के Pytorch मॉडल है । मैं कोशिश कर रहा हूँ को प्रशिक्षित करने के लिए मेरे Pytorch मॉडल का उपयोग कर dicom डेटा और nifti GT हालांकि, वजन के आकार के फ़ाइल हास्यास्पद छोटा है, क्योंकि मॉडल प्रशिक्षण नहीं है सामान्य रूप से प्रदर्शन किया.

मैं प्रयोग किया जाता नेटवर्क मॉडल Unet++

मुझे लगता है कि वहाँ एक समस्या है डेटा के साथ लोडर. लेकिन मैं नहीं कर सकता fixe यह...

मैं इसकी सराहना करता हूँ अगर आप मेरी मदद कर सकता है.

कच्चे छवि फ़ाइल स्वरूप है dicom और जीटी छवि प्रारूप है nifti

मेरे dataloder

def __getitem__(self, index):
    image_path = self.image_paths[index]
    image_GT_path = image_path[:8]+'_'+image_path[8:12]+'.nii'
    GT_path = self.GT_paths + image_GT_path

    ds = dcmread(self.root+image_path)
    image = ds.pixel_array.astype(np.float32)
    image = torch.from_numpy(image.transpose(0,1)/255)
    image = image.unsqueeze(0)

    GT = nib.load(GT_path)
    GT = GT.get_fdata(dtype=np.float32)
    print(GT.shape)
    GT = torch.from_numpy(GT.transpose(0,1))
    GT = GT.unsqueeze(0)

    return image, GT, image_path

और ट्रेन के कोड है

for epoch in range(self.num_epochs):

            self.unet.train(True)
            epoch_loss = 0
            for i, (images, GT,empty) in enumerate(tqdm(self.train_loader)):
                # GT : Ground Truth

                images = images.to(self.device)
                GT = GT.to(self.device)
                
                # SR : Segmentation Result
                SR = self.unet(images)
                SR_probs = torch.sigmoid(SR)

                SR_flat = SR_probs.view(SR_probs.size(0),-1)

                GT_flat = GT.view(GT.size(0),-1)
                loss =self.criterion(SR_flat,GT_flat)

                # self.criterion=DiceLoss() #BCE not use
                # loss = self.criterion(GT,SR_probs)
                epoch_loss += loss.item()
                train_losses.append(loss.item())
                # Backprop + optimize
                self.reset_grad()
                loss.backward()
                self.optimizer.step()
dataloader medical-imaging nifti pytorch
2021-11-24 06:40:12
1

सबसे अच्छा जवाब

1

पर निर्भर करता है क्या साधन आपकी छवियों कर रहे हैं, यह संभवतः हो सकता है कारण नहीं करने के लिए परिवर्तित करने के लिए छवि डेटा में सही, चिकित्सकीय प्रासंगिक, मशीन/विक्रेता स्वतंत्र है, इकाइयों के लिए पहले किसी मिलीलीटर प्रशिक्षण 0-1 सामान्यीकरण ।

में आम तौर पर dicom फ़ाइलें, वास्तविक कच्चे डेटा मूल्यों नहीं कर रहे हैं कि - वे की जरूरत है, प्रसंस्करण...

उदाहरण के लिए, यदि आप की कोशिश कर रहे हैं करने के लिए ट्रेन सीटी पर डेटा है, तो इकाइयों आप होना चाहिए की कोशिश कर रहा है को प्रशिक्षित करने के लिए अपने मॉडल पर कर रहे हैं Houndsfield के (हू) की संख्या. (एक गूगल पर है कि, सीटी और dicom पाने के लिए कुछ पृष्ठभूमि).

हालांकि कच्चे सीटी dicom डेटा हो सकता है छोटे या बड़े एंडियन, की संभावना की जरूरत है एक ढलान/अवरोधन सुधार लागू किया जाता है और भी कर सकता करने के लिए की जरूरत है देखो मेज पर लागू करने के लिए में कन्वर्ट हू की संख्या. ...यानी प्राप्त कर सकते हैं जटिल और गन्दा है । (फिर से एक बिट के googling ...आप कम से कम होना चाहिए पर पृष्ठभूमि के एक बिट यह आप की कोशिश कर रहे हैं करने के लिए कुछ भी नहीं के साथ चिकित्सा छवि प्रारूपों).

मैं नहीं हूँ यकीन है कि कैसे करने के लिए प्रक्रिया nifti डेटा, हालांकि सौभाग्य से, के लिए dicom फ़ाइलों का उपयोग कर pydicom इस रूपांतरण किया जा सकता द्वारा आप के लिए पुस्तकालय का उपयोग कर (आमतौर पर) एक कॉल करने के लिए pydicom.pixel_data_handlers.util.apply_modality_lut:


dcm = pydicom.dcmread(my_ct_dicom_file)
data_in_HU = pydicom.pixel_data_handlers.util.apply_voi_lut(
    dcm.pixel_array,
    dcm
)
2021-11-26 19:55:55

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................