张量流中的conv1d和conv2d

时间:2017-12-15 16:57:42

标签: tensorflow

对于conv2d,假设输入的2D矩阵具有形状(W,H)且conv核心大小为(Wk,H),这意味着内核的高度与输入矩阵的高度相同。在这种情况下,我们可以认为内核大小为Wk的conv1执行与conv2d相同的计算吗?

例如:

tf.layers.conv2d(
    kernel_size=tf.Variable(tf.truncated_normal([Wk, H, 1, out_dim], stddev=0.1),
    input=...
) 

等于:

tf.layers.conv1d(kernel_size=Wk, input=...)

2 个答案:

答案 0 :(得分:0)

他们不一样; conv2d内核有更多的权重,因此会以不同的方式进行训练。此外,根据padding的设置,conv2d操作的输出大小也可能不是1D。

答案 1 :(得分:0)

tf.nn.conv1d只需致电tf.nn.conv2d

这是tf.nn.conv1d的描述:

在内部,此op重塑输入张量并调用tf.nn.conv2d。例如,如果data_format并非以“ NC”开头,则将形状为[batch, in_width, in_channels]的张量重塑为[batch, 1, in_width, in_channels],并将过滤器重塑为[1, filter_width, in_channels, out_channels]。然后将结果重新调整为[batch, out_width, out_channels](其中out_width是步幅和填充的函数,如conv2d一样)并返回给调用者。