- 博客(37)
- 资源 (1)
- 收藏
- 关注
原创 动手学深度学习(pytorch)学习记录26-卷积神经网路(LeNet)[学习记录]
这里的二维表示的第一个维度索引小批量中的样本,第二个维度给出每个样本的平面向量表示。LeNet的稠密块有三个全连接层,分别有120、84和10个输出。因为我们在执行分类任务,所以输出层的10维对应于最后输出结果的数量。虽然卷积神经网络的参数较少,但与深度的多层感知机相比,它们的计算成本仍然很高,因为每个参数都参与更多的乘法。节中定义的train_epoch_ch3不同,在进行正向和反向传播之前,需要将每一小批量数据移动到我们指定的设备(例如GPU)上。通过在每一层打印输出的形状,可以检查模型。
2024-09-09 20:02:25 482
原创 动手学深度学习(pytorch)学习记录25-汇聚层(池化层)[学习记录]
定义一个池化操作,X是张量,pool_size是汇聚层大小,mode默认为max即输出为输入区域的最大值,mode设置为avg时,输出为输入区域的平均值。默认情况下,深度学习框架中的步幅与汇聚窗口的大小相同,如果使用形状为(3,3)的汇聚层窗口,则得到的步幅大小为(3,3)。汇聚层和卷积层的运动方式一样,从左上角向右下角移动指定步幅,汇聚层执行的是“采样”操作。汇聚层是没有参数的。在通道维度上连结张量X和X + 1,以构建具有2个通道的输入。降低卷积层对位置的敏感性,同时降低对空间降采样表示的敏感性。
2024-09-09 14:31:34 378
原创 动手学深度学习(pytorch)学习记录24-填充和步幅[学习记录]
假设输入图像高度为n1,宽度为n2,卷积核高宽为k1、k2,则输出形状为(n1-k1+1)×(n2-k2+1),经过卷积后的图像越来越小,边缘信息不断丢失。假设添加p1行填充(一半在顶部,一半在底部),添加p2列填充(一半在左侧一半在右侧),输出形状为(n1-k1+p1+1)×(n2-k2+p2+1)如果设置了p1=k1-1,p2=k2-1,输出形状简化为[(n1+s1-1)/s1]×[(n2+s2-1)/s2]卷积窗口是从左上角向下向右滑动的,在前面的代码中,滑动的距离是默认的1个元素,即步幅为1。
2024-09-05 22:33:31 473
原创 动手学深度学习(pytorch)学习记录23-图像卷积[学习记录]
接下来,在每次迭代中,比较Y与卷积层输出的平方误差,然后计算梯度来更新卷积核。如下所示,输出Y中的1代表从白色到黑色的边缘,-1代表从黑色到白色的边缘,其他情况的输出为0。当进行互相关运算时,如果水平相邻的两元素相同,则输出为零,否则输出为非零。当卷积核、卷积层变复杂的时候,人工设计卷积核十分困难。所学的卷积核的权重张量和上文设计的卷积核[1,-1]十分接近。将输入的二维图像转置,再进行如上的互相关运算,发现之前构造的卷积核无法检测上下边缘。严格来说,卷积的说法是不太正确的,它执行的操作是互相关运算。
2024-09-02 07:30:00 412
原创 动手学深度学习(pytorch)学习记录22-GPU[学习记录]
本次代码在kaggle平台上运行。使用两个T4的GPU使用nvidia-smi命令来查看显卡信息。
2024-08-30 13:52:13 923
原创 动手学深度学习(pytorch)学习记录20-自定义层[学习记录]
下面的CenteredLayer类要从其输入中减去均值。要构建它,只需继承基础层类并实现前向传播功能。喂一点数据,看它能否按预期工作自定义的层也可以作为组件合并到其他模型中print(net)喂点数据看看,一般来说一堆数据减去均值后再求均值得到的数应该接近0Y.mean()
2024-08-29 22:28:56 622
原创 动手学深度学习(pytorch)学习记录19-参数管理[学习记录]
访问参数,用于调试、诊断和可视化;参数初始化;在不同模型组件间共享参数;延后初始化。
2024-08-28 23:06:36 1348
原创 动手学深度学习(pytorch)学习记录18-层和块[学习记录]
用模型参数声明层。这里声明两个全连接的层# 调用MLP的父类nn.Module的构造函数来执行必要的初始化。# 这样,在类实例化时也可以指定其他函数参数,例如模型参数paramsself.hidden = nn.Linear(20, 256) # 隐藏层self.out = nn.Linear(256, 10) # 输出层# 定义模型的前向传播,即如何根据输入X返回所需的模型输出# 注意,这里我们使用ReLU的函数版本,其在nn.functional模块中定义。# 尝试一下这个函数。
2024-08-28 16:47:46 1263
原创 动手学深度学习(pytorch)学习记录17-房价预测[学习记录]
首先,建立字典DATA_HUB, 它可以将数据集名称的字符串映射到数据集相关的二元组上, 这个二元组包含数据集的url和验证文件完整性的sha-1密钥。所有类似的数据集都托管在地址为DATA_URL的站点上。下面的download函数用来下载数据集, 将数据集缓存在本地目录(默认情况下为…/data)中, 并返回下载文件的名称。如果缓存目录中已经存在此数据集文件,并且其sha-1与存储在DATA_HUB中的相匹配, 将使用缓存的文件,以避免重复的下载。
2024-08-27 21:59:47 1339
原创 动手学深度学习(pytorch)学习记录16-暂退法[学习记录]
可以将暂退法应用于每个隐藏层的输出(在激活函数之后), 并且可以为每一层分别设置暂退概率: 常见的技巧是在靠近输入层的地方设置较低的暂退概率。下面的模型将第一个和第二个隐藏层的暂退概率分别设置为0.2和0.5, 并且暂退法只在训练期间有效。# 只有在训练模型时才使用dropout# 在第一个全连接层之后添加一个dropout层# 在第二个全连接层之后添加一个dropout层return out。
2024-08-27 14:25:01 882
原创 动手学深度学习(pytorch)学习记录15-正则化、权重衰减[学习记录]
我们可以通过收集更多的训练数据来缓解过拟合,但这可能成本很高,耗时很多或完全失去控制,在短期内难以做到。假设已经有了足够多的数据,接下来将重点放在正则化技术上。权重衰减是使用最广泛的正则化技术之一,它通常也被称为L2正则化技术方法:通过函数与零之间的距离来度量函数的复杂度;如何精确测量这种‘距离’?一个简单的方法是通过线性函数f(x)=w^(T) x 中权重向量的某个范数(如||w||^2)来度量复杂度最常用的方法是将范数作为惩罚项添加到最小化损失中。
2024-08-25 16:16:54 442
原创 动手学深度学习(pytorch)学习记录14-多项式回归对过拟合欠拟合的探索[学习记录]
使用三阶多项式函数,它与数据生成函数的阶数相同。结果表明,该模型能有效降低训练损失和测试损失。学习到的模型参数也接近真实值([5, 1.2, -3.4, 5.6])再看看线性函数拟合,减少该模型的训练损失相对困难。在最后一个迭代周期完成后,训练损失仍然很高。当用来拟合非线性模式(如这里的三阶多项式函数)时,线性模型容易欠拟合。从生成的数据集中查看一下前2个样本, 第一个值是与偏置相对应的常量特征。实现一个函数以评估模型在给定数据集上的损失。
2024-08-23 20:01:43 251
原创 动手学深度学习(pytorch)学习记录13-多层感知机的从零开始实现[学习记录]
在一些测试数据上应用这个模型。多层感知机的训练过程与。动手实现ReLU函数。与训练相关的一些函数。
2024-08-16 16:58:26 229
原创 动手学深度学习(pytorch)学习记录12-激活函数[学习记录]
对于一个定义域在R中的输入, sigmoid函数将输入变换为区间(0, 1)上的输出。因此,sigmoid通常称为挤压函数(squashing function): 它将范围(-inf, inf)中的任意输入压缩到区间(0, 1)中的某个值。当输入为负时,ReLU函数的导数为0,而当输入为正时,ReLU函数的导数为1。tanh函数的导数图像: 当输入接近0时,tanh函数的导数接近最大值1。sigmoid函数的导数当输入为0时,sigmoid函数的导数达到最大值0.25;简单定义一个画图的函数。
2024-08-16 14:50:07 645
原创 动手学深度学习(pytorch)学习记录11-softmax回归的更简单实现[学习记录]
注:本代码在jupyter notebook上运行通过深度学习框架的高级API实现softmax回归模型更简单。如在中一样, 继续使用Fashion-MNIST数据集,并保持批量大小为256。
2024-08-14 22:29:23 595
原创 小米HEIC格式图片转JPG
小米手机的HEIC图片存储格式是一种高效图像文件格式,全称为High Efficiency Image File Format(高效图像文件格式),它是由MPEG(Moving Picture Experts Group,运动图像专家组)开发,并在近年来逐渐被智能手机制造商,包括小米,所采用。
2024-08-13 23:10:31 670
原创 动手学深度学习(pytorch)学习记录9-图像分类数据集之Fashion-MNIST[学习记录]
Fashion-MNIST中包含的10个类别,分别为t-shirt(T恤)、trouser(裤子)、pullover(套衫)、dress(连衣裙)、coat(外套)、sandal(凉鞋)、shirt(衬衫)、sneaker(运动鞋)、bag(包)和ankle boot(短靴)。Fashion-MNIST由10个类别的图像组成, 每个类别由训练数据集(train dataset)中的6000张图像和测试数据集(test dataset)中的1000张图像组成。其中每张图像都是28x28像素的灰度图像。
2024-08-13 17:27:25 469
原创 动手学深度学习(pytorch)学习记录8-线性回归的简洁实现[学习记录]
使用框架的预定义好的层。这使我们只需关注使用哪些层来构造模型,而不必关注层的实现细节。首先定义一个模型变量net,它是一个Sequential类的实例。Sequential类将多个层串联在一起。当给定输入数据时,Sequential实例将数据传入到第一层, 然后将第一层的输出作为第二层的输入,以此类推。# nn是神经网络的缩写net = nn.Sequential(nn.Linear(2, 1))# 输入形状2输出形状1计算均方误差使用的是MSELoss类,也称为平方L2范数。
2024-08-12 20:43:08 482
原创 动手学深度学习(pytorch)学习记录7-线性回归的从零开始实现[学习记录]
"""线性回归模型""""""均方损失"""# 6、定义优化算法"""小批量随机梯度下降"""
2024-08-12 20:09:53 452
原创 百度飞桨paddle提供李宏毅的《机器学习》课程、可以使用免费算力一键运行项目,快来一起学习吧
我正在AI Studio学习『李宏毅课程-机器学习』,还可以使用免费算力一键运行项目,快来一起学习吧。https://aistudio.baidu.com/course/introduce/1978?sharedType=1&sharedUserId=2179582&ts=1722737111977
2024-08-04 10:05:46 1393
原创 windows环境下conda搭建百度飞桨paddle深度学习环境[学习记录]
去百度飞桨网站(https://www.paddlepaddle.org.cn/)选择合适的CUDA版本,复制安装代码。我的CUDA版本是12.5,由于CUDA向下兼容,可选的最新版本是12.3。快捷键win+R,输入cmd回车,输入nvidia-smi查看CUDA Version为12.5。出现PaddlePaddle is installed successfully!输入conda create -n paddle python=3.8 然后回车。输入y、回车,开始安装。
2024-08-03 19:30:03 833
原创 python用matplotlib库画出tensor图片(dataloader里的图片)[学习记录]
我使用的是自制的数据集,放进dataloader里,但不确定图片和标签是否匹配,利用matplotlib库画出图片并打印标签便于检查。
2024-08-01 14:50:02 185
动手学深度学习(pytorch)学习记录1数据操作(源码)
2024-08-05
深度学习,CNN经典网络实现,LeNet-5,代码实现MNIST数据集手写数字识别
2024-07-30
metric-learn:Python 中的度量学习代码
2022-09-13
用于离线签名验证的深度多任务度量学习代码
2022-09-13
SAS Viya 环境中数据挖掘和机器学习技术的代码示例和支持材料。
2022-09-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人