关于使用 tf.layers.conv3d 的输入重塑问题

input reshape problem about using tf.layers.conv3d

我对tf.layers.conv3d的reshape问题有点迷惑,输入require shape是(batch, depth, height, width, channels),现在我的输入数据是.nii file(a heart CT scan),形状为(512, 512, depth),第三维表示心脏切片(每个切片为512x512)。不同的患者有不同的深度。

问题是如果我尝试将数据重塑为 (depth, 512, 512) 以适应 conv3d 输入,则每个切片 (512x512) 的对应项将是 different.Will 这得到一个影响训练?或者是否有任何方法可以在每个切片中保留相同的项目?

x = np.arange(32).reshape(2,2,8)
print(x[:,:,0])

y = x.reshape(8,2,2)
print(y[0,:,:])

假设心脏扫描有8个切片,每个切片有2*2张图像slices.The x[:,:,0]将是([[0,8],[16, 24]]),另一个是 ([[0,1],[2,3]])。所以在不同的切片中有不同的项目。

我只是想知道是否存在某种方法可以重塑为(深度,高度,宽度)并在每个切片中保持相同的项目。或者我是否将其输入 tensorflow conv3d 层并不重要?

我找到了解决方案

只是使用 np.transpose 而不是 np.reshape 并且每个维度的元素都不会改变!