当前位置: 首页 > 知识库问答 >
问题:

三维卷积中输入图像的变化顺序

斜单鹗
2023-03-14

根据tf.keras.layers.Conv3D的官方留档

如果data\u format='channels\u first',带形状的5 D张量:batch\u shape(通道,conv\u dim1,conv\u dim2,conv\u dim3),如果data\u format='channels\u last',带形状的5 D张量:batch\u shape(通道,conv\u dim1,conv\u dim2,conv\u dim3,通道)

。现在,围绕通道和批处理形状的整个想法是有道理的,但是将(conv_dim1,conv_dim2,conv_dim2)的一般顺序更改为(x,y,z)会影响性能吗。

Conv3D是否担心x-y-z尺寸的顺序?

我在训练一个U网分割模型,在改变轴的顺序后,我看到了性能上的差异。(x,y,z)阶比(y,x,z)阶收敛更快。

我只是想确定什么是正确的方法...

共有1个答案

危璞
2023-03-14

虽然您的数据似乎是各向同性的,但情况可能并非如此:

提供的数据在预处理后分发,即共同注册到相同的解剖模板,内插到相同的分辨率(1 mm^3)并剥离颅骨。

可能的情况是,底层源数据不是各向同性的,您看到的是插值的效果(某些维度比其他维度“更平滑”)。

您是否考虑过利用这种“各向同性”特性,并按照

利亚德·波拉克·祖克曼、艾尔·纳尔、乔治·皮沙、沙伊·巴贡、迈克尔·伊拉尼

 类似资料:
  • 我在使用Keras和Python对3D形状进行分类时遇到了一个问题。我有一个文件夹,里面有一些JSON格式的模型。我将这些模型读入Numpy数组。模型是25*25*25,表示体素化模型的占用网格(每个位置表示位置(i、j、k)中的体素是否有点),因此我只有1个输入通道,就像2D图像中的灰度图像一样。我拥有的代码如下: 在此之后,我得到以下错误 使用TensorFlow后端。回溯(最后一次调用):文

  • 真的很难理解keras中卷积1d层的输入维度: 输入形状 带形状的三维张量:(采样、步长、input\u dim)。 输出形状 带形状的三维张量:(采样、新的\u步骤、nb\u过滤器)。由于填充,步骤值可能已更改。 我希望我的网络接受价格的时间序列(101,按顺序)并输出4个概率。我当前的非卷积网络做得相当好(训练集为28000)如下所示: 为了改进这一点,我想从具有长度为10的局部感受野的输入层

  • 我正在实现一个依赖于3D卷积的模型(对于类似于动作识别的任务),我想使用批量规范化(参见 下面的代码引用了TensorFlow r0.12,它显式地引用了变量——我的意思是我没有使用tf。承包商。学习tf以外的内容。承包商。图层。batch\u norm()函数。我这样做是为了更好地理解事情是如何运作的,并且有更多的实现自由度(例如,变量摘要)。 我将通过首先编写完全连接层的示例,然后编写2D卷积

  • 在我的项目中,我编写了一个简单的直接3D卷积C实现,在输入上使用周期性填充。不幸的是,由于我是C新手,所以性能不太好。。。代码如下: 按照惯例,所有矩阵(图像、内核、结果)都以列为主的方式存储,这就是为什么我以这种方式循环遍历它们,以便它们在内存中更近(听说这会有所帮助)。 我知道这个实现非常天真,但由于它是用C编写的,我希望性能会很好,但结果有点令人失望。我用大小为100^3的图像和大小为10^

  • 问题是卷积神经网络的数学细节。假设网络的体系结构(其目标是图像分类)是这样的 输入图像32x32 第一个隐藏层3x28x28(由3个大小为5x5的滤波器卷积而成,步幅=0,无填充),随后是激活 池化层(在2x2区域上池化),产生3x14x14输出 第二隐藏层6x10x10(由6个大小为5x5的滤波器卷积而成,步幅=0,无填充),随后激活 池化层(在2x2区域上池化),产生6x5x5输出 具有100

  • 卷积神经网络(convolutional neural network)是含有卷积层(convolutional layer)的神经网络。本章中介绍的卷积神经网络均使用最常见的二维卷积层。它有高和宽两个空间维度,常用来处理图像数据。本节中,我们将介绍简单形式的二维卷积层的工作原理。 二维互相关运算 虽然卷积层得名于卷积(convolution)运算,但我们通常在卷积层中使用更加直观的互相关(cro