Linear&Conv2d的一些见解!!!!

1 篇文章 0 订阅
1 篇文章 0 订阅

Linear

- 现在先定义一些东西:

in_features:输入特征集

out_features:输出特征集

input_hang:输入的tensor的行

input_lie:输入的tensor的列

现在列举一个表格给你看看:

在这里插入图片描述

我就列举了两个feature,我们把这些features组成一个二维的tensor,用他们后面的数字代表:

[123
 456]

我们就发现,列是代表:我们每个种类的特征集。所以不管在分类问题还是预测回归问题上,我们都经常考虑tensor的列,而行的数量只表示你的特征多不多,越多我模型train出来就可能越精确,当然也可能会坏掉,比如两个类的东西越多,他们两个种类可能越相似,哪就可能无法判断出来哪个是哪个。

  • 上面我们就知道了:tensor的就是代表:特征集

我们看下图,就知道。

  • 我们Linear(输入特征集,输出特征集)。又因为输入 特征集=输入tensor的列。

然后把你tensor的列丢进去做linear就好了。要记住的是:我的out_features是可以大于in_features的。

请添加图片描述

对于他的bias,我们train模型的时候都需要的。

Conv2d

Conv2d就也很难理解,个人觉得:

nn.Conv2d(

self, in_channels,out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True**

)
参数:
  in_channel: 输入数据的通道数,例RGB图片通道数为3;(一般为深度)
  out_channel: 输出数据的通道数,这个根据模型调整;
  kennel_size: 卷积核大小;kennel_size=2,意味着卷积大小2, kennel_size=(2,3),意味着卷积在第一维度大小为2,在第二维度大小为3;
stride:步长,默认为1 padding: 在边缘补零

难理解的点就是在通道、kennel、还有filter上的联系。推荐一篇博客给大家:

filter 与 kernel ,卷积的理解 - chumingqian - 博客园
(cnblogs.com)

一般怎么考虑tensor的维度:

我们可以把我们熟知的三维:长宽高。换成我们现在tensor的维度

在tensor里面呢? 有:

宽(width) 、高(high)、深度(depth)

深度越深,我们的通道也就会越多。当然,我们的卷积核也可以有深度,这就可以把原始的depth,通过卷积核,变换成另外一个depth(深度)。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuyi大混子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值