데이터로더 optimization

Treeboy·2024년 1월 29일
0

Medical Image

목록 보기
5/6
post-custom-banner

다루는 영상이 3D 이다보니 세 평면에서 모델을 만들 일이 생겼다..

        if self.plane == 'axial':
            data = nib.load(path).dataobj[:, i:i+self.slice_thickness, :]
            data = np.transpose(data, (1, 2, 0))
        if self.plane == 'sagittal':
            data = nib.load(path).dataobj[i:i+self.slice_thickness, :, :]
            data = np.transpose(data, (0, 2, 1))
        if self.plane == 'coronal':
            data = nib.load(path).dataobj[:, :, i:i+self.slice_thickness]
            data = np.transpose(data, (2, 0, 1))

그래서 코드를 이렇게 짰더니, 평면에 따라 로딩하는 속도가 달라졌다.

  • axial: 200it/s
  • sagittal: 5it/s
  • coronal: 400it/s

아ㅅㅂ왜이러지?

일단

data = nib.load(path).get_data()[i:i+self.slice_thickness]

으로 바꿨더니 sagittal은 90it/s까지 올리는데 성공했다. 이만하면 됐지뭐..

post-custom-banner

0개의 댓글