DeepLearningTutorials convolutional_mlp.py中的过时/错误代码



此代码包含以下花絮:

from theano.tensor.nnet import conv2d
...
# convolve input feature maps with filters
    conv_out = conv2d(
        input=input,
        filters=self.W,
        filter_shape=filter_shape,
        input_shape=image_shape
    )

由于找不到" input_shape ",这引发了异常,尽管在文档中提到它说:

"image_shape ... – 已弃用的input_shape别名"

在本地和源代码中查看 conv.py 我发现:

def conv2d(input, filters, image_shape=None, filter_shape=None,
       border_mode='valid', subsample=(1, 1), **kargs):

不用说,没有input_shape的痕迹。如果修改上面的代码如下

# convolve input feature maps with filters
    conv_out = conv2d(
        input=input,
        filters=self.W,
        filter_shape=filter_shape,
        image_shape=image_shape
    )

异常消失,代码运行正常。

我错过了什么?如果image_shape被弃用,为什么它可以工作而input_shape不起作用?

存储库中的theano版本是否已过时?

PS:我本来想直接问 http://deeplearning.net 的人,但我找不到方法。

您确定安装了最新版本吗?

conv.py包含已弃用的 conv2d 实现。新的实现可以在__init__.py中找到

确保您使用的是导入语句

from theano.tensor.nnet import conv2d

而不是

from theano.tensor.nnet.conv import conv2d

因为第二个将导入已弃用的实现

相关内容

最新更新