张量流中的基本一维卷积

张量流中的基本一维卷积,第1张

张量流中的基本一维卷积

不好意思地说,但是您的第一个代码几乎是正确的。你只是倒置

x
phi
tf.nn.conv2d

g = tf.Graph()with g.as_default():    # data shape is "[batch, in_height, in_width, in_channels]",    x = tf.Variable(np.array([0.0, 0.0, 0.0, 0.0, 1.0]).reshape(1, 1, 5, 1), name="x")    # filter shape is "[filter_height, filter_width, in_channels, out_channels]"    phi = tf.Variable(np.array([0.0, 0.5, 1.0]).reshape(1, 3, 1, 1), name="phi")    conv = tf.nn.conv2d(        x,        phi,        strides=[1, 1, 1, 1],        padding="SAME",        name="conv")

更新:
从版本r0.11开始,TensorFlow现在支持使用1D卷积

tf.nn.conv1d
。我以前在粘贴到这里的stackoverflow文档中(现在已绝种)做了一个使用它们的指南:


一维卷积指南

考虑一个基本示例,该示例的长度

10
和尺寸输入
16
。批量大小为
32
。因此,我们有一个带有输入shape的占位符
[batch_size, 10,16]

batch_size = 32x = tf.placeholder(tf.float32, [batch_size, 10, 16])

然后,我们创建一个宽度为3的过滤器,并以

16
通道作为输入,并同时输出
16
通道。

filter = tf.zeros([3, 16, 16])  # these should be real values, not 0

最后,我们应用

tf.nn.conv1d
跨距填充:- 跨距 :整数
s
- 填充
:这与2D相似,您可以在
SAME
和之间进行选择
VALID
SAME
将输出相同的输入长度,而
VALID
不会添加零填充。

在我们的示例中,跨度为2,有效填充为空白。

output = tf.nn.conv1d(x, filter, stride=2, padding="VALID")

输出形状应为

[batch_size, 4, 16]

使用
padding="SAME"
,我们的输出形状为
[batch_size, 5, 16]



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5631161.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存