TensorFlow 卷积操作

TensorFlow 还提供了一些其他类型的卷积层:

  • conv1d()为 1D 输入创建一个卷积层。 例如,在自然语言处理中这是有用的,其中句子可以表示为一维单词阵列,并且接受场覆盖一些邻近单词。
  • conv3d()创建一个 3D 输入的卷积层,如 3D PET 扫描。
  • atrous_conv2d()创建了一个 atrous 卷积层(“àtrous”是法语“with holes”)。 这相当于使用具有通过插入行和列(即,孔)而扩大的卷积核的普通卷积层。 例如,等于[[1,2,3]]1×3卷积核可以以4的扩张率扩张,导致扩张的卷积核[[1,0,0,0,2,0,0,0,3]]。 这使得卷积层在没有计算价格的情况下具有更大的局部感受野,并且不使用额外的参数。
  • conv2d_transpose()创建了一个转置卷积层,有时称为去卷积层,它对图像进行上采样(这个名称是非常具有误导性的,因为这个层并不执行去卷积,这是一个定义良好的数学运算(卷积的逆)) 。这是通过在输入之间插入零来实现的,所以你可以把它看作是一个使用分数步长的普通卷积层。例如,在图像分割中,上采样是有用的:在典型的CNN中,特征映射越来越小当通过网络时,所以如果你想输出一个与输入大小相同的图像,你需要一个上采样层。
  • depthwise_conv2d()创建一个深度卷积层,将每个卷积核独立应用于每个单独的输入通道。 因此,如果有fn卷积核和fn'输入通道,那么这将输出fn×fn'特征映射。
  • separable_conv2d()创建一个可分离的卷积层,首先像深度卷积层一样工作,然后将1×1卷积层应用于结果特征映射。 这使得可以将卷积核应用于任意的输入通道组。