自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 现代卷积神经网络

这种网络只看卷积nin卷积构成部分,最后输出是四维特征矩阵,而标签里存储的是二维(样本数,分类数),所以这时候的输出还需要两层网络,第一层是自适应池 nn.AdaptiveAvgPool2d((1, 1))),用于把图片全部特征汇聚为1*1(样本数,通道(分类数),1,1),第二层是展平层(注:哪怕展平后的二维矩阵(样本数,分类数),也不是可以与标签比较的矩阵,还需要进行一个归一化,有时候也可以在之前上一层sigmoid,最后需要进行max()来进行独热编码。3,四条路线输出通道都可以自定义,方便定制。

2023-04-19 22:52:37 205

原创 卷积汇聚层

1.用于做最后一层,不具有权重矩阵,只能进行单一的求平均核最大值,输入通道和输出通道直接联通,几个输入几个输出,默认步幅和填充情况下。可以设置填充和步幅,相当于对之前结果的汇总。2.一个完整神经卷积网络由输入图像,卷积网络层(输入通道,输出通道,卷积大小,步幅和填充),一些全连接层,以及汇聚层组成。

2023-04-11 07:52:29 116

原创 卷积多输入多输出

2.(a,b,c,d)分别代表输出通道,输入通道,卷积形状(c,d).可以认为卷积数目就是输出通道乘以输入通道,每一行,相当于与输入图片通道相当的卷积数目,一个通道对应一个卷积,而有多少行,就是有多少组特点的卷积组成。1.函数比较:torch.cat是合并式拼接,而torch.stack是增加维度不合并拼接,需要张量形式完全相同。比如两个(2,2,2)的,cat按照dim=0得出(4,2,2),stack得出(2,2,2,2)3.1*1卷积层相当于一个线性层。默认情况下不会改变输入输出形状。

2023-04-10 07:33:01 112

原创 卷积网络填充和步幅

1.填充:用于扩充数据尺寸,增加像素,减少输出图像相对于原图的像素损失,提升模型广泛性以及方便图像的形状保持。一边填充总数按照对应对应卷积核的行列分别做:比如行:假如卷积核有k行,则p总=k-1(如果步幅为1,则这样输出输入同型),上下各自k-1/2行填充,列同样。2.步幅:指定一次读多少格子,比如(3,4),则水平读每次读三格,竖直四格,默认横竖为1.举例:输入为(8,8),经过。

2023-04-09 20:59:57 203

原创 图像卷积初步

1.卷积核和图片执行互相关运算,图片为(a,b),核为(k,l),则输出图片为(a-k+1,b-l+1),相当于核全部扫描一遍图片,每次一个局部,之后产生对应于检测某种特征的权重矩阵(比如黑白分界特征)。一般训练集会给出希望得到的特征分类,比如垂直边缘矩阵等,然后给出预期的卷积核模样,之后我们进行多次训练,然后随着损失减小,卷积核(权重矩阵)会越来越接近预期矩阵。4.直接conv2d.weight引用的时parameter类型,.data后则是tensor类型,才可以切片赋值。

2023-04-09 12:30:49 53

原创 层和块基础知识:

('0.weight', torch.Size([8, 4])) ('0.bias', torch.Size([8])) ('2.weight', torch.Size([1, 8])) ('2.bias', torch.Size([1]))分别是第一层的参数,第三层的参数。clone = MLP(),clone.load_state_dict(torch.load('mlp.params')),(假设原模型是MLP()),只需要使用该函数即可将参数直接施加到模型上。2.对于块内参数调用直接切片调用即可,

2023-04-09 11:07:31 59

原创 kaggle房价预测:项目流程

第一个参数是文件的目录,第二个包含四种模式'r','w','rb','wb','r''w'会以文本的方式打开文件,内容包含字符串等都可以,'rb''wb'会以二进制数字类型打开,数据会全部以二进制展示。3.os.makedirs( ,exist_ok=),这是一个文件夹(目录)创建函数,第一个参数是文件夹(目录,可以是多级)(mksir是只能新建一级),第二个参数如果True,则当目录已经存在,跳过该语句,如果False则会报错并中断执行。tarfile-用来解压'tar''gz'格式文件的库;

2023-04-07 08:03:26 219

原创 李沐-多层感知机,优化方案

4.l2正则化本质就是加了一个平方惩罚项,其他类似,唯独在给优化算法输入参数时加入调用正则化系数:trainer = torch.optim.SGD([{"params":net[0].weight,##"weight_decay":wd##这里对weight使用正则化##},{"params":net[0].bias}],lr)对比:trainer = torch.optim.SGD(net.parameters(), lr=lr)这里就没有包含正则化项。1.mlp-全连接层-每个输入均影响输出。

2023-04-04 11:33:38 336

原创 李沐-softmax从0开始实现

8.Accumulator():可以索引的计数器,例如:Accumulator(2)代表有两个计数单元,可以通过.add()进行添加,每用一个逗号跨一个单元。简单实现:一.数据,二.初始化:1.网络初始化:定义网络结构,2.设计层参数初始化函数,3.apply()为网络添加初始化函数以初始化网络每一次,三。过程:1-读取数据,2-初始化参数,3-定义模型:1-softmax操作,2-模型本体,4-损失函数,5-训练-反向和梯度有自动化,所以不需要专门定义。2,模块判断:(函数,模块);

2023-04-02 20:32:12 142

原创 李沐--图像分类数据集

eg:torchvision.datasets.FashionMNIST( root=, train=True, transform=, download=True):train:是否为训练集, transform:使用什么转换方式(可以从transforms组件中选择),download:是否下载对应数据集。5对4.对于获得的数据,一般是一个X对一个Y,X每个为(1,行,列){通道数:1(彩色图片是3),图片宽度,图片长度}。10,imshow()可以接收二维,三维甚至多维数组。

2023-04-01 16:18:49 351

原创 pytorch线性回归简洁实现总结

用于读取dataset,类似于pd.read类型的1.batch_size指的一次取的批量大小,2.shuffle=False, sampler=None,指的是否打乱以及不打乱用什么方式取得,3.取得批量超额是否舍弃最后一批,4.timeout=0,超额截断。5.nn.Linear(2, 1),打造一个线性层(无激活函数),且(2,1)分别指输入输出特征,即w为(2,1),相当于上一层是两个节点,这一次一个节点。6..weight.data,.bias.data,可以调用对应的w和b。

2023-03-30 18:39:45 112

原创 线代微分的一些注意点

6,y,x都是变量,应为.backward()不能识别要求那个变量,所以只能单变量微分。如果要求z对x的偏导数,需要使用.detach(),使u具有和y除了求导外相同功能同时不会取代y,所以需要y对于x的偏导数仍旧可以用y求。线代:1.A是一个(5,4)的矩阵,现在A.sum(axis=1),得到的是(5,)的向量,要reshape(5,1),或者直接使用keepdims = True。4,对以x为变量的函数用.backward可以求导(要求:该函数为标量,不是则要先sum(),之后再求)

2023-03-29 21:06:02 121

原创 数据集简单创建和读取

4.pd.get_dummies():对非数字列转换成独热编码,(如果没有dummy_na=True会自动舍弃独热后为1的NaN分类)2.iloc[]:对dataframe操作用iloc,按照行列序号索引;对张量,元组可以直接切片;打开数据集用with open,不能可视化数据,但是可以通过函数操作文件内部,比如.write。{path一般使用os.path.join进行路径拼接,也可以直接用于索引}1.read类型,多种,不同数据集不同读取(读取的文件可以print可视化)

2023-03-29 19:30:39 214

原创 神经网络优化总结:

ONE:初始化:1,总体的初始方式:{1:zeros:全0初始化,对w不能用,一般对b用;2,每一层初始方式:批量归一化:{由对特征的归一化延申,现在对每层的z归一化(A的上一级),同时由于归一化矩阵为平均值为0,方差为1,为了更好体现特征,引入参数fan,beta,即znorm1 = fan*znorm0 + beta。3:adam':v+s:在2的基础上,进行根据导数大小相应的乘法}SECOND:算法:1,批量选择:{1:总体;2:随机:一次一个数据,随机性强,波动大,快;

2023-03-29 18:41:34 57

原创 优化算法-

这里的v可以认为是dw,db的修正项,v["dW" + str(l + 1)] = beta * v["dW" + str(l + 1)] + (1 - beta) * grads["dW" + str(l + 1)],vdw,vdb实际上是对grads中dw,db的持续修正项,由于只和vdw本身以及dw有关,而vdw一般初始化为0,所以多次迭代才会有比较好的效果。adam使用了v,s,相当于用v减小竖直,叠加水平;用s相当于d越大,缩减越大,d越小,缩减越小,所以通过加权惩罚梯度,导致梯度下降更好。

2023-03-27 19:42:02 59

原创 深度学习记录笔记-初始化,正则化,梯度检验

1.初始化:(修正的问题:防止梯度爆炸或者消失)w一般he初始化,b一般zeros初始化(random初始化一般需要乘小系数,因为sigmoid,tanh中w导致z过大,梯度下降缓慢(w为0梯度下降就为0)2.元组和数组:元组只要是用逗号隔开如a=(x,c),无论x,c本身是数字还是元组,其得到数目都是(2,);数组如果是两个,则得到(2,x.shape[1]),同样无论x,c的种类,但是需要同形式。2.zeros()中必须是(,)这种,而randn()中则是直接放数字加逗号,shape()中都可以。

2023-03-26 21:15:19 100 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除