我对tf.layers.conv3d的重塑问题有些困惑,输入的所需形状是(批处理,深度,高度,宽度,通道),现在我的输入数据是.nii文件( CT扫描),其形状为(512、512,深度),第三维表示心脏切片(每个切片为512x512)。不同的病人有不同的深度。
问题是如果我尝试将数据重塑为(depth,512,512)以适合conv3d输入,则每个slice(512x512)的对应项将不同,这会对训练产生影响吗?还是在每个切片中保留相同项目的任何方法?
x = np.arange(32).reshape(2,2,8)
print(x[:,:,0])
y = x.reshape(8,2,2)
print(y[0,:,:])
假设心脏扫描中有8个切片,每个切片中有2 * 2张图像。x[:,:,0]将为([[0,8],[16,24]] ,另一个是([[0,1],[2,3]])。因此在不同的切片中有不同的项目。
我只是想知道是否存在某种方法可以重塑为(深度,高度,宽度)并在每个切片中保持相同的项目。还是我将其输入到tensorflow conv3d层都没关系?
答案 0 :(得分:0)
我找到了解决方法
仅使用np.transpose而不是np.reshape 并且每个维度中的元素都不会改变!