gpt4 book ai didi

python - 为什么 theano conv2d 添加空维度?

转载 作者:行者123 更新时间:2023-12-01 05:12:06 25 4
gpt4 key购买 nike

我正在玩一些简单的 Theano 代码,我遇到了以下问题:

import numpy
import theano
from theano import tensor
from theano.tensor.signal.conv import conv2d

m = tensor.fmatrix()
w = numpy.ones([10,1], dtype=numpy.float32)
c = conv2d(m,w)
f = theano.function([m], c)
print f(numpy.ones([100,100], dtype=numpy.float32)).shape

结果:(1, 91, 100)

2d 输入的 2d 卷积的结果预计是 2d,但实际上是 3d。为什么?

最佳答案

conv2d 的文档字符串表示 signal.conv.conv2d 对输入执行基本的 2D 卷积给定过滤器(注意复数)

您可以向它传递几个过滤器,它将返回所有这些过滤器的卷积。尝试例如

c = conv2d(m,np.array([w, w, w]))
f = theano.function([m], c)
print f(numpy.ones([100,100], dtype=numpy.float32)).shape # outputs (3, 91, 100)

因此,默认情况下,如果您只传递 1 个过滤器,它会添加一个简并轴(可能是因为如果您自己没有以这种方式传递它,它会在内部将该轴添加到您的过滤器中。换句话说,它不会不跟踪输入形状以返回对应的内容。看起来更像是一种设计选择。)

关于python - 为什么 theano conv2d 添加空维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23978598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com