Tensorflow tf.contrib.layers.separable_conv2d的操作数

Tensorflow tf.contrib.layers.separable_conv2d的操作数,tensorflow,machine-learning,conv-neural-network,lstm,Tensorflow,Machine Learning,Conv Neural Network,Lstm,我正在阅读CVPR2018的论文,以及发布的代码: 现在,我对论文中的等式(4)有一个问题:瓶颈lstm的成本是DK^2*(M+N)*DF^2+(M+N)*N*DF^2+4(DK^2*N*DN^2+N^2*DF^2) 当我阅读源代码时,我看到两个连续的tf.contrib.layers.separable_conv2d被用来形成本文中描述的bottlenek lstm 我对前两个任期毫无疑问,但是,对于第三个任期,我认为应该是(DK^2*N*D2+4*N^2*DF^2)。也就是说,系数4应仅适用

我正在阅读CVPR2018的论文,以及发布的代码:

现在,我对论文中的等式(4)有一个问题:瓶颈lstm的成本是DK^2*(M+N)*DF^2+(M+N)*N*DF^2+4(DK^2*N*DN^2+N^2*DF^2)

当我阅读源代码时,我看到两个连续的tf.contrib.layers.separable_conv2d被用来形成本文中描述的bottlenek lstm

我对前两个任期毫无疑问,但是,对于第三个任期,我认为应该是(DK^2*N*D2+4*N^2*DF^2)。也就是说,系数4应仅适用于第三项内的后者,因为tf.contrib.layers.separable_conv2d由纵深方向conv和点方向conv组成,纵深方向conv与输出通道无关。

我错过什么了吗?还是报纸上写得不对

对于可分离卷积的计算,I遵循等式(5)

瓶颈lstm计算的选定代码:

bottleneck = tf.contrib.layers.separable_conv2d(
         tf.concat([inputs, h], 3),
         self._num_units,
         self._filter_size,
         depth_multiplier=1,
         activation_fn=self._activation,
         normalizer_fn=None,
         scope='bottleneck')

if self._viz_gates:
       slim.summaries.add_histogram_summary(bottleneck, 'bottleneck')

concat = tf.contrib.layers.separable_conv2d(
         bottleneck,
         4 * self._num_units,
         self._filter_size,
         depth_multiplier=1,
         activation_fn=None,
         normalizer_fn=None,
         scope='gates')
为了保持一致性,让我们

self._filter_size=[Dk,Dk]
self._num_units = N
inputs shape is [batch, DF, DF, M]
h shape is [batch, DF, DF, N]