医学图像处理中常见arry<->tensor转换:
**问题背景:**在做图像处理时需要加载图像,通常有几种加载方式,以下是一种:
# 读取一个data文件并归一化 shape:[s,h,w] self.ct = sitk.ReadImage(self.data_path,sitk.sitkInt16) self.data_np = sitk.GetArrayFromImage(self.ct)######z,x,y
:AttributeError: 'numpy.ndarray' object has no attribute 'clone'
**1)**分析:clone是针对tensor处理的,因此需要把数据转为tensor值,改为:torch.tensor(data_np)
self.data_np=*torch.from_numpy*(self.data_np).float()**###torch.from_numpy数组转为tensor值**
##一种归一化处理
MEAN, STD = self.data_np.mean().float(), self.data_np.std().float()#数据类型转换
MAX, MIN = img_tensor.max(), img_tensor.min()
self.data_np = ( self.data_np.clone() - MEAN) / STD
self.data_np=self.data_np.cpu()#**##tensor转为数组”cpu()“**
2)另外,上述b = a.numpy()之简单转为numpy类型,往往有些tensor值由梯度信息,得在其后面继续添加
.detach().numpy()