深度学习
文章平均质量分 75
才不是小emo的小杨
这个作者很懒,什么都没留下…
展开
-
CNN实现对手写字体的迭代
下面创建卷积模型来识别MNIST手写数据集。我们所创建的卷积模型先试用两个卷积层和两个池化层,然后将最后一个池化的输出展平为二维数据形式连接到全连接层,最后是输出层,中间的每一层都是用ReLU函数激活,输出层的输出张量长度为10,与类别数一致。从上述代码中可以看到,train_dl返回的图片数据是四维的,4个维度分别代表批次、通道数、高度和宽度(batch,channel,height,width),这正是PyTorch下卷积模型所需要的图片输入格式。原创 2023-12-27 17:16:08 · 820 阅读 · 0 评论 -
CNN中卷积层和池化层
上述代码中生成了批次图像,形状为(64,3,256,256),经过最大池化运算后,输出形状为(64,3,128,128),可以看到图像的高和宽均变为原来的一半,这是因为当调用torch.max_pool2d()方法应用最大池化时,设置了kernel_size为(2,2),这表示池化核将从2×2大小的输入中选择最大的值作为输出,这样的效果就是高和宽均缩小为原来的一半。在PyTorch中使用图片的默认形状为(channel,height,width)原创 2023-12-27 14:43:19 · 1142 阅读 · 0 评论 -
深度学习中常见的激活函数
我们在前面了解到了线性回归模型,其实我们可以把线性回归看成一个单个的神经元,它实际上就完成了两个步骤1.对输入的特征的加权求和2.将结果通过传递函数(或者激活函数)输出这里我们提到了传递函数(或者激活函数),我们从线性回归的模型中可以看出,在回归问题上,输出并没有做激活,仅仅是直接输出单个神将元所完成的任务就是对所有输入的特征乘以权重(w)、加上偏置(b)。原创 2023-12-18 16:22:06 · 500 阅读 · 0 评论 -
MNIST内置手写数字数据集的实现
首先单个样本训练有一个很大的缺点,就是损失和梯度会受到单个样本的影响,如果样本分布不均匀,或者有错误标注样本,则会引起梯度的巨大震荡,从而导致模型训练效果很差。为了克服上述方法的缺点,一般采用的是一种折中手段进行损失函数计算:即把数据分为若干个小的批次,按批次来更新参数,这样,一个批次中的一组数据共同决定了本次梯度的方向,大大降低了参数更新时的梯度方差,下降起来更加稳定,减少了随机性,与单样本训练相比,小批次训练可利用矩阵操作进行有效的梯度计算,计算量也不是很大,对计算机内存的要求也不高。原创 2023-12-17 17:47:16 · 1209 阅读 · 0 评论 -
torch中张量与数据类型的介绍
PyTorch最基本的操作对象是张量,它表示一个多维数组,类似NumPy的数组,但是前者可以在GPU上加速计算。原创 2023-12-17 15:13:05 · 1329 阅读 · 0 评论 -
使用torch解决线性回归问题
因为当前模型是一个简单的线性回归模型,只有w和b两个参数,在__init__()方法中,使用nn.Linear()方法初始化一个线性连接层,nn.Linear有两个参数,即in_features和out_features,分别代表输入和输出维度的大小,根据X和Y的size()方法,我们可以输入和输出的维度大小都为1.这里的模型就是一个最简单的线性层,也就是所谓的一个线性函数,只有w和b两个参数,接下来是我们定义计算损失函数,并且根据损失值进行梯度优化,优化模型参数。原创 2023-12-11 23:39:31 · 416 阅读 · 0 评论