首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >theano.tensor.nnet.conv.conv2d的输出大小

theano.tensor.nnet.conv.conv2d的输出大小
EN

Stack Overflow用户
提问于 2015-06-04 00:43:07
回答 1查看 1.5K关注 0票数 2

目前在教程和其他地方广泛使用的函数的形式如下:

代码语言:javascript
复制
conv_out = conv2d(
        input= x, # some 4d tensor 
        filters= w, # some shared variable
        filter_shape= [ nkerns, stack_size, filter_height, filter_width ],
        image_shape= [ batch_size, stack_size, height, width ]
    )
  1. 如果对于CNN的第一层,我有filter_shape as [ 20, 1 , 7, 7 ],即核数为20,每个7x7,'1‘代表什么?我的image_shape[100, 1, 84, 84 ]
  2. 这个卷积现在输出一个[ 100, 20, 26, 26]形状的张量,我理解。我的下一层现在接受参数filter_shape = [50, 20, 5 ,5 ]image_shape = [ 100, 20 ,26, 26 ],并生成shape [ 100 ,50 ,11 ,11 ]的输出。我似乎有点理解这个操作,除了,如果我想使用一个' 50‘过滤器层,每一个工作在前面的20个功能地图,我不应该产生1000个特征地图,而不是只产生50个特征地图?为了重申我的问题,我有一个由20个特征映射组成的堆栈,每个映射运行50个卷积核,我的输出形状不是应该是[100, 1000, 11, 11]而不是[ 100, 50 , 11, 11]吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-04 20:12:42

回答你的问题:

  1. 1代表输入通道的数量。因为你似乎在使用灰度图像,这是一个。对于彩色图像,它可以是3。对于其他卷积层,如在第二个问题中,它必须等于前一层生成的输出数。
  2. [50, 20, 5, 5]的输入信号上使用大小为[100, 20, 26, 26]的滤波器实际上也是第一个问题的一个很好的例子。这里有50个形状的[20, 5, 5]过滤器。每一幅图像都是[20, 26, 26]形状的。卷积每次使用全部20个通道:滤波器0被应用到图像通道0,滤波器1被应用到图像1,并对整个结果进行了总结。这有意义吗?
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30633181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档