machine-learning - conv3d pytorch中的内核深度=1是什么意思
问题描述
我想了解 PyTorch 中 conv2d 和 conv3d 之间的区别。
有什么区别:
conv3d(in, out, kernel_size(1,3,3))
和
conv2d(in,out,kernel_size(3,3))
我检查了官方文档,但我不太明白两者之间的区别。在这种情况下,conv3d 是否应该与 conv2d 相同,因为深度为 1?任何帮助,将不胜感激。
解决方案
在某些特定情况下,它们可以产生相同的结果。
举conv1d
个例子:在 conv1d 中使用 (1, n),当内核到达行尾时conv2d
,您将通过一维输入(即w>0
and ),其结果已准备好。h=1
但是在 con2d 上,它是您正在处理的 2D 输入(即w>0
和h>0
),它将转到下一行,直到到达底线。所以它的结果也是一个二维对象。
层增加了输入/输出的深度,您可以拥有多个in
层,这将决定每个内核的层数,以及层数,out
内核的数量。
如果我的观察是正确的,我们可以说d*h*w
通过conv3d
( 1x3x3
) 内核的d
单层h*w
张量与通过conv2d
带有d
, -d
层内核的 - 层张量相同3x3
。输出形状将是(N, 1, d, h, w)
vs (N, d, h, w)
(在d
后者中用作通道数)。
在某些情况下,您可以获得相同的结果(操作)。但是,当向您的(层可以作为第四维)添加深度时conv3d
,您将无法将其与 a 相匹配,conv2d
顾名思义!
推荐阅读
- mongodb - MongoDB 随机聚合文档(唯一结果)
- laravel - PresenceChannels 和 PrivateChannels 有什么区别 - LARAVEL 5.8
- excel - Excel VBA 运行时错误“5”无效的过程调用或参数
- unity3d - 如何修复 HololensWorldManager 无法返回世界坐标系?
- java - 通过 websphere 应用服务器管理控制台设置 http 请求头
- c# - 接收json字符串数据库MS SQL数据库,格式化问题
- python - 使用从数据库恢复的 cookie 时看到重复的 cookie
- kubernetes - 主崩溃后整个 Kubernetes 集群宕机
- postgresql - Pentaho Business Analytics 的报告未显示十进制数字
- javascript - 从 for 循环内的回调将数据推送到异步块外的数组