自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多GPU的实现

print(f'测试精度:{animator.Y[0][-1]:.2f},{timer.avg():.1f}秒/轮,'假设现在有一个向量分布在多个GPU上,下面的allreduce函数将所有向量相加,并将结果广播给所有GPU。print('allreduce之前:\n', data[0], '\n', data[1])print('allreduce之后:\n', data[0], '\n', data[1])# 将每个GPU的所有梯度相加,并将其广播到所有GPU。"""将X和y拆分到多个设备上"""

2024-09-14 22:44:42 410

原创 单机多卡并行(李沐老师课程)

数据并行:将小批量的数据分成n块,每个GPU拿到完整参数,各自计算一块数据的梯度。图片中显示了四个GPU,它们从key-value存储中获取参数,计算各自的梯度,然后发送梯度回主节点。在训练和预测过程中,我们将一个小批量的数据分配给多个GPU,使得计算能够同时进行,达到加速的目的。通道并行(数据+模型并行):结合上述两种方法,既对数据也对模型进行划分,以最大化利用GPU资源。模型并行:将模型分割为几个部分,在不同的GPU上运行,通常是将前向传播阶段分布在多个GPU上。这样的过程循环进行,直到训练结束。

2024-09-13 18:04:17 381

原创 TPU和其他(李沐老师课程)

在右上角,有一个标有“Adreno 630 Visual Processing Subsystem”的模块,这是高通的图形处理单元(GPU),负责图形渲染和一些计算任务。在中心位置有一个大的矩形模块,上面写着“Snapdragon X20 LTE modem”,这指的是高通的X20 LTE调制解调器,它是用于无线通信的组件。TPU的核心是systolic array,这是一种特殊的矩阵计算架构,特别适合于张量处理,也就是深度学习中常见的多维数组操作。

2024-09-13 15:50:32 1081

原创 深度学习硬件(李沐老师课程)

例如,如果程序按照某种模式访问数据,并且该模式可预测,则可以通过预取将数据加载到缓存中,这样当实际需要数据时就可以立即获取,而不是等待从较慢的内存层次结构中检索数据。因此,在编程时应尽量减少CPU和GPU之间的数据交换次数,或者尽量增大每次交换的数据量,以降低带宽限制的影响。总的来说,CPU更适合处理复杂的控制流程和少量的多样化数据,而GPU则适用于处理大量的并行操作和简单的计算任务。中间有一条橙色的曲线表示数据传输路径,从CPU到GPU,速率限制为PCIe 3.0 x16的带宽,即16 GB/s。

2024-09-13 15:40:25 939

原创 ResNet的梯度计算(李牧老师课程)

在卷积神经网络中第一层输入是W,第二层输入f(W),第三层输入是g(f(w))依次类推,在进行梯度更新时,若效果较好,则最终输出y对于倒数第一层导数值较小,从而根据链式法则对倒数第二层导数值等于导数第一层导数值乘以倒数第二层较小,在梯度更新时难以更新倒数第二层,依次原理越靠近数据层月难以训练,所以进行残差之后,原本是链式法则的训练可以变为加法进行训练,则并不受什么影响,理论上会变得更好。

2024-09-13 11:32:48 458

原创 残差神经网络(李沐老师课程)

然后我们通过跨层数据通路,跳过这2个卷积运算,将输入直接加在最后的ReLU激活函数前。这样的设计要求2个卷积层的输出与输入形状一样,从而使它们可以相加。之后的每个模块在第一个残差块里将上一个模块的通道数翻倍,并将高和宽减半。ResNet则使用4个由残差块组成的模块,每个模块使用若干个同样输出通道数的残差块。如果想改变通道数,就需要引入一个额外的1*1卷积层来将输入变换成需要的形状后再做相加运算。残差块里首先有2个有相同输出通道数的3*3卷积层。也可以在增加输出通道数的同时,减半输出的高和宽。

2024-09-12 17:52:45 869

原创 批量归一化(李沐老师课程)

然而,值得注意的是,在某些情况下,比如小批量大小或者某些类型的模型中,批量归一化可能不会带来预期的效果,甚至可能会有负面影响。它通过标准化每层网络的输入(通常是前一层网络的输出),使得网络中的每一层都能接收到具有相同分布的输入数据。创建一个正确的BatchNorm层。:由于批量归一化使得网络中的每一层都能接收到一致分布的数据,因此可以加快模型的学习速度,减少达到特定精度所需的训练迭代次数。:由于批量归一化确保了每一层的输入都有良好的分布,因此对权重的初始化要求相对较低,降低了模型对初始条件的敏感性。

2024-09-12 14:57:46 1422

原创 GoogLeNet(李沐老师课程)

第四模块更加复杂, 它串联了5个Inception块,其输出通道数分别是192+208+48+64=512、160+224+64+64=512、128+256+64+64=512、112+228+64+64=528和256+320+128+128=832。这些路径的通道数分配和第三模块中的类似,首先是含3*3卷积层的第二条路径输出最多通道,其次是仅含1*1卷积层的第一条路径,之后是含5*5卷积层的第三条路径和含3*3最大汇聚层的第四条路径。第二个模块使用两个卷积层:第一个卷积层是64个通道、1*1卷积层;

2024-09-11 22:23:48 893

原创 网络中的网络NiN(李沐老师课程)

将四维的输出转成二维的输出,其形状为(批量大小,10)# 标签类别数是10。

2024-09-11 19:08:16 442

原创 VGG神经网络(李沐老师课程)

该函数有三个参数,分别对应于卷积层的数量num_convs、输入通道的数量in_channels 和输出通道的数量out_channels.为什么不用5*5卷积核,在过程发现多个卷积核为3的效果比少量的大卷积核效果要好。通道数较少的网络,足够用于训练Fashion-MNIST数据集。

2024-09-11 17:02:45 702

原创 从LeNet到AlexNet(李沐老师课程)

神经网络的初步改变使得学习变成了端到端的学习,不再需要人工提取特征。

2024-09-11 15:07:53 880

原创 LeNet网络(李沐老师课程)

如下所示, 由于我们将实现多层神经网络,因此我们将主要使用高级API。以下训练函数假定从高级API创建的模型作为输入,并进行相应的优化。与全连接层一样,我们使用交叉熵损失函数和小批量随机梯度下降""",在进行正向和反向传播之前,我们需要将每一小批量数据移动到我们指定的设备(例如GPU)上。# BERT微调所需的(之后将介绍)# 训练损失之和,训练准确率之和,样本数。"""使用GPU计算模型在数据集上的精度"""# 正确预测的数量,总预测的数量。"""用GPU训练模型"""训练和评估LeNet-5模型。

2024-09-11 10:48:07 966

原创 池化层(李沐老师课程)

设定一个任意大小的矩形池化窗口,并分别设定填充和步幅的高度和宽度。深度学习框架中的步幅与池化窗口的大小相同。池化层在每个输入通道上单独运算。验证二维最大池化层的输出。填充和步幅可以手动设定。实现池化层的正向传播。验证平均池化层的输出。

2024-09-10 21:32:55 482

原创 卷积神经网络多输入和多输出的通道数(李沐老师课程)

计算多个通道的输出的互相关函数。多输入多输出的互相关运算。实现多输入通道互相关运算。验证互相关运算的输出。

2024-09-10 19:59:10 416

原创 卷积层的填充和步幅(李沐老师课程)

​"""在所有侧边增加一个像素"""​"""填充不同的宽度和高度"""​"""将高度和宽度的步幅设置为2"""

2024-09-10 17:23:07 296

原创 卷积神经网络(李沐老师课程)

输出Y中的1代表从白色到黑色的边缘,-1代表从黑色到白色的边缘。"""计算二维互相关运算。验证上述二维互相关运算的输出。以上卷积核只能检测垂直边缘。检测图像中不同颜色的边缘。学习由X到Y生成的卷积核。所学的卷积核的权重张量。

2024-09-10 14:27:31 753

原创 神经网络中GPU的使用(李沐老师课程)

"""返回所有可用的GPU,如果没有GPU,则返回【cpu(),】""""""如果存在,则返回gpu(i),否则返回cpu"""保证代码在没有gpu的时候使用cpu。在第二个GPU上创建一个随机张量。确认模型参数存储在同一个GPU上。查询可以使用的gpu数量。

2024-09-09 20:49:09 248

原创 模型参数的加载和保存(李沐老师课程)

将模型参数保存为一个叫做‘mydict.params’的文件。实例化原始多层感知机模型的一个备份。直接读取文件中存储的参数。存储一个张量列表,然后把它们读回内存。

2024-09-09 17:34:50 323

原创 自定义神经网络层(李沐老师课程)

"""自定义层"""Y.mean()"""带参数的图层"""

2024-09-09 16:30:44 393

原创 deep learning 参数管理(李沐老师课程)

首先关注具有隐藏层的多层感知机。对某些块应用不同的初始化方法。更简单更暴力的模型初始化。一次访问网络所有参数。

2024-09-09 16:29:35 591

原创 层和块的定义(李沐老师课程)

当sequential的实现。Sequential的实现。

2024-09-09 15:02:44 575

原创 数值稳定性+模型初始化+激活函数(李沐老师课程)

2024-09-07 23:56:14 218

原创 丢弃法从0开始实现(李沐老师课程)

在第一个全连接层之后添加一个dropout层。# 在第二个全连接层之后添加一个dropout层。# 在第一个全连接层之后添加一个dropout层。# 在第二个全连接层之后添加一个dropout层。# 只有在训练模型时才使用dropout。# 在本情况中,所有元素都被丢弃。# 在本情况中,所有元素都被保留。dropout方法的实现。"""定义模型参数"""

2024-09-06 16:41:46 919

原创 yolo xml转化为txt

saveBasePath = 'D:\\code\\pycharmProject\\yolov7\\yolov7-main\\yolov7-main\\datasets\\traffic' # 生成的txt文件的保存路径。xmlfilepath = 'D:\\code\\pycharmProject\\yolov7\\yolov7-main\\yolov7-main\\datasets\\traffic\\xml' # xml文件的路径。# yolo xml转化为txt。

2024-09-06 16:25:49 317

原创 权重衰退从0开始实现(李沐老师课程)

广播机制使l2_penalty(w)成为一个长度为batch_size的向量。print('w的L2范数:', net[0].weight.norm().item())print('w的L2范数是:', torch.norm(w).item())# 增加了L2范数惩罚项,1.模型参数范围较小(即能选择值的较少)# 偏置参数没有衰减。2.模型参数数量较少。

2024-09-06 15:42:52 1122

原创 zed相机的安装和使用

如果没有 requests库先安装requests使用命令conda install requests。之后再次运行get_python_api.py。进入安装目录,默认安装目录。如有以下这些便可以使用。

2024-09-06 11:19:35 515

原创 过拟合和欠拟合、模型选择进行代码验证(李沐老师课程)

loss = nn.MSELoss(reduction='mean') # 使用平均损失。l = loss(y_hat, y).mean() # 确保损失被平均化。l = loss(out, y).mean() # 平均损失。# 修改 train_epoch_ch3 函数以确保损失被平均化。# 不设置偏置,因为我们已经在多项式中实现了它。# 从多项式特征中选择前2个维度,即1和x。# 将数据转换为 PyTorch 张量。# 设置随机种子以保证结果的一致性。# 从多项式特征中选取所有维度。

2024-09-05 22:26:46 528

原创 模型选择+过拟合和欠拟合(李沐老师课程)

模型选择模型选择预测谁会还贷款过拟合和欠拟合模型容量如何通过训练误差和泛化误差判断过拟合还是欠拟合

2024-09-05 15:49:48 201

原创 多层感知机从0开始实现(李沐老师课程)

多层感知机从0开始实现。多层感知机的简洁实现。

2024-09-05 13:57:13 410

原创 感知机(李沐老师课程)

1960年代感知机感知机案列感知机无法满足XOR问题

2024-09-04 21:55:31 146

原创 Softmax回归从0开始实现(李沐老师课程)

metric = Accumulator(2) # 正确的预测数、预测总数。return x_exp / partition # 广播机制。net.eval() # 将模型设为评估模式。验证softmax的正确性,行总和为0,每个元素值在非负。小知识点创建一个y_hat,使用y作为y_hat的索引。"""训练模型(定义见第3章)"""计算在指定数据集上模型的精度。定义一个在动画中绘制数据的实用程序类。"""在动画中绘制数据"""实现softmax模型。任意模型net的准确率。softmax模型训练。

2024-09-04 18:21:23 987 1

原创 SoftMax回归(李沐老师课程)

"""下载Fashion-MNIST数据集,然后将其加载到内存中"""通过ToTrnsor实例将图像数据从PIL类型变换成为32浮点数据格式。通过框架中的内置函数将Fashion-MNIST数据集进行下载。返回Fashion-MNIST数据集的文本标签。"""使用四个进程来读取数据"""并除以255使得所有像素点位于0-1。

2024-09-04 16:09:19 1052

原创 线性回归的代码实现(李沐老师课程)

"""生成y=xw+b+噪声:param w::param b::return:"""break"""线性回归模型:param X::param w::param b::return:""""""均方误差:param y::return:""""""小批量随机梯度下降:param lr::return:"""

2024-09-03 18:43:47 781

原创 基础优化算法(李沐老师课程)

梯度下降(优化算法最常用的)最常用梯度下降

2024-09-03 16:19:06 178

原创 线性回归一个基本案列房价(李沐老师课程)

2024-09-03 16:00:47 124

原创 自动求导(李沐老师课程)

深度学习中我们的目的不是计算微分矩阵,而是批量中每个样本单独计算偏导数之和。# 等价于y.backward(torch.ones(len(x)))# 对非标量调用的backward需要传入一个gradient参数。u = y.detach() # 把u当作常量不计入x。print(x.grad) # 默认是None。自动求导的实现假设对函数y=2X.T*X。即便构建函数控制流,依然可以求导计算梯度。将某些计算移到计算图之外。梯度会累积所以要清零。

2024-09-03 14:58:45 549

原创 矩阵的导数计算

亚导数。

2024-09-02 22:26:16 192

原创 线性代数的实现(李沐老师课程)

给定任意维度的两个矩阵,任何元素的二元计算都是按照相同的形状的张量。给定任意维度的两个矩阵,任何元素的二元计算都是按照相同的形状的张量。矩阵的弗罗贝尼乌斯(f'robenius norm)范数。两个矩阵元素的乘积为哈达玛积,为点乘。可以通过张量的索引进行元素的访问。向量(可视为标量值组成的列表)某个轴计算A元素的累计求和。计算总和和均值时维度不变。通过广播将A/SUM_A。对称矩阵的转置等于自己。线性代数标量基本运算。表示任意形状的元素和。按照求和汇总张量的轴。

2024-09-02 18:10:29 900

原创 线性代数(李沐老师课程)

范数在深度学习中扮演着至关重要的角色,主要用于模型训练过程中的正则化、损失函数的设计、梯度裁剪、模型评估等方面。

2024-09-02 18:09:29 858

原创 基本的数据预处理(李沐老师课程)

inputs = inputs.fillna(inputs.mean(numeric_only=True)) # numeric_only=True,排除非数值的行或列。4.pandas转化为张量格式。2.pandas数据的插值。1.csv文件的读取。

2024-09-02 18:08:20 217

空空如也

空空如也

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

TA关注的人

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