
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
from torchvision import transforms#数据操作import d2l。
o=XW+b,即把X拉成2维向量,通过每个特征*权重+偏执,为每个类别“打分”,谁得分高认为属于哪一类,同时由于打分过程可能出现负数,以及为了让打分高的更高,进行归一化处理,将其转变成概率。for i,(a,b) in enumerate(zip(x,y)): #循环拿到x里的新横坐标,y里的新的纵坐标,配对,拿到标号。if not self.X:#判断是否是首次调用,即self.X是否为空,并将
nn.init.normal_(m.weight, mean=0, std=0.01)#只初始化w。net=nn.Sequential(nn.Flatten(),nn.Linear(28*28,10))#设置网络。if type(m) == nn.Linear:#判断是否是线性层,如果是将其初始化为正态分布。net.apply(init_weights)#遍历整个网络,对线性层初始化。def in
trans = transforms.ToTensor() #把图片转成预处理,转成张量。h=a<w1,x>+b1,a是激活函数。类似softmax,在中间加了一层。二pycharm环境代码实现。
n_train,n_test,num_inputs,batch_size=20,100,200,5#训练样本少,容易过拟合。print('w的L2范数是:', torch.norm(w).item())
Q2:调节x的方差,可以明显观察到test和train都会下降,这是因为方差大,信号强度越强,因为对于test来说,比较早的就可以掌握到规律,因此后期增加epoch也不会下降,但是对于train,可以继续学习噪声,因此loss会下降。出现过拟合的原因就是,train数据比较小,但是维度大,而且x方差大,梯度下降的快,步伐大,下降的快,噪声比较大,所以后期train会学习噪音,loss会下降。pri
import d2ltrans = transforms.ToTensor() #把图片转成预处理,转成张量plt.ioff()dropout1,dropout2分别设为(0,0)(1,1)(0.5,0.5)(0.2,0.8).为什么没有明显变化:Dropout 通过随机丢弃神经元迫使模型在每次训练时采用不同的神经网络子集。网络在训练初期可能没有足够的时间适应这种“不稳定性”,因此它可能会在训练过
import torch from torch import nn # def corr2d(X,K): # h,w=K.shape # y=torch.zeros(X.shape[0]-h+1,X.shape[1]-w+1) # for i in range(y.shape[0]): # for j in range(y.shape[1]): # y[i,j]=(X[i:i+h,j:j+w]*
强制把每一层的输入激活拉回到“正常区间”,梯度被稳定缩放(γ/σ) → 防止爆炸与消失,让每一层 “看到” 的输入分布变稳定 → 优化难度降低。
图像增强可以在源图像上进行一系列的变换,包括翻转、色调改变、裁剪等,可以给图像加“噪音”,增强模型的泛化性,图像增强在训练过程中,会增加样本的数量,但是不会增加训练集的大小len(dataset)还是原来的N张图,只是对于模型来说,他每次取一张图,但是通过增强可以让模型看到更多版本,用有限多的变体取做训练。经过训练之后,可能训练准确度小于测试准确度,但是需要注意的是,图像增强不是随意加的,而是在做







