conv2d的输入_Conv1d, conv2d, conv3d

conv1d

输入数据格式为(batch_size, channel, length)

nn.conv1d(in_channels, outchannel, kernel_size, stride=1,padding=0,dilation=1,groups=1)

nn.Conv1d(1, 20, 5)表示输入1通道,20个卷积核,核大小为5

conv2d

输入数据格式为(batch_size, channel, Height, Width),

nn.conv2d(in_channels,out_channels,kernel_size, stride=(1,1),padding=0,dilation=(1,1),groups=1)

nn.Conv2d(1, 20, (3, 3), stride=(1, 1),padding=(2,2)) 表示输入1通道,20个卷积核,核大小为(3*3)

针对conv2d , 输入的是4维,[150,103,7,7]

conv3d

输入数据格式为(batch_size, channel, Depth, Height, Width)

nn.conv2d(in_channels,out_channels,kernel_size, stride=(1,1,1),padding=0,dilation=(1,1,1),groups=1)

nn.Conv3d(1, 90, (24, 3, 3), stride=(9,1,1),padding=(1,1,1))

8fb0667a849a6aa65e9237fdc7b6beb3.png

输入的是5维,150是batch_size,1是增加的维度,103是brand波段,7*7是patch_size.

FC

nn.Linear(input_channels, outpout_channels)

要求数据输入格式为(batch_size, length),

68f77796ced84624678d348f5863300d.png

150是batch_size, 103是波段, 没有patch_size,以单个像素作为输入。

总结

在本地的实验中,当patch>1时,data = data.unsqueeze(0), 增加一维,变成四维数据(Planes x Channels x Width x Height),Planes=1, channels=波段。dataloader之后,变成五维数据,((Batch x) Planes x Channels x Width x Height)。因此nn.Conv3d(1, 90, (24, 3, 3)),输入通道是1.

当输入网络是conv2d时,拿到五维数据,((Batch x) Planes x Channels x Width x Height),其中Planes=1。此时需要x = x.squeeze(). 把Planes去掉,变成((Batch x) Channels x Width x Height)然后nn.Conv2d(input_channels, 80, (3, 3)),其中input_channels就是波段数量。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值