- 博客(33)
- 收藏
- 关注
原创 06《CUDA编程基础与实践》-CUDA的内存组织
CPU和GPU中都有内存分级的设计。相对于CPU编程来说,CUDA编程模型向程序员提供更多的控制权。因此,对 CUDA 编程来说,熟悉其内存的分级组织是非常重要的。
2023-07-20 11:17:03
184
原创 05《CUDA编程基础与实践》-获得GPU加速的关键
通过实验发现,仅仅对核函数计时用时很少,但如果多cpu和gpu数据传输时间也计入,就会用时很长。
2023-07-19 16:56:04
149
原创 04《CUDA编程基础与实践》-CUDA程序的错误检测
和编写 C++程序一样,编写 CUDA 程序时难免会出现各种各样的错误。有的错误在编译的过程中就可以被编译器捕捉,称为编译错误。有的错误在编译期间没有被发现,但在运行的时候出现,称为运行时刻的错误。一般来说,运行时刻的错误更难排除。本章讨论如何检测运行时刻的错误,包括使用一个检查 CUDA 运行时 API函数返回值的宏函数及使用 CUDA-MEMCHECK 工具。
2023-07-18 20:39:00
197
原创 03《CUDA编程基础与实践》-简单CUDA程序的基本框架
核函数可以调用不带执行配置的自定义函数,这样的自定义函数称为设备函数(device function)。它是在设备中执行,并在设备中被调用的。与之相比,核函数是在设备中执行,但在主机端被调用的。现在也支持在一个核函数中调用其他核函数,甚至调用该核函数本身,但本书不涉及这方面的内容。设备函数的定义与使用涉及 CUDA 中函数执行空间标识符的概念。我们先对此进行介绍,然后以数组相加的程序为例展示设备函数的定义与调用。3.3.1 函数执行空间标识符。
2023-07-18 17:47:27
160
原创 02《CUDA编程基础与实践》-CUDA中的线程组织
一般来说一个标准的 CUDA 程序中既有纯粹的 C++ 代码,又有不属于 C++的真正的CUDA 代码。CUDA 程序的编译器驱动 nvcc 在编译一个 CUDA程序时,会将纯粹的 C++ 代码交给 C++ 的编译器(如前面提到的 g++ 或 cl)去处理它自己则负责编译剩下的部分。CUDA 程序源文件的扩展名是 cu,所以我们可以先将上面写好的源文件更名为 hello1.cu,然后用 vcc 编译:$ nvcc hello1.cu编译好之后即可运行。运行结果与 C++ 序的运行结果相同。
2023-07-18 14:27:24
144
原创 01《CUDA编程基础与实践》-GPU硬件与CUDA程序开发工具
基于 CPU (central processing unit,中央处理器)和 GPU(graphics processing unit,图形处理器)的异构计算 (heterogeneous computing)已逐步发展为高性能计算(high performance computing)领域的主流模式。很多超级计算机大量使用了GPU。
2023-07-18 10:56:13
390
原创 李宏毅【2021/2022春机器学习课程】P5-P17
多维正态分布均值决定中心位置, covariance matrix协方差矩阵表示分布范围,当有多个随机变量 时,可以使用协方差矩阵来衡量这些随机变量两两之间的相似程度协方差矩阵:是一个对称矩阵,决定了二维高斯分布的形状;协方差矩阵的对角线元素为x和y轴的方差;反斜对角线上的两个值为协方差,表明x和y的线性相关程度,正值时:x增大,y也随之增大;负值时:x增大,y随之减小。极大似然估计函数,把样本中的概率全部通过高斯函数计算出×起来,对u,协方差矩阵求导,求出极值,这个u,协方差矩阵就是最拟合
2023-07-03 11:43:13
108
原创 李宏毅【2021/2022春机器学习课程】P1-P4
参考:李宏毅此文参考分段的直线可以用多个sigmoid叠加来实现改变w,b和sigmoid的前面的系数可以改变sigmoid的函数的样子如何将单一直线变成复杂的非直线呢3个sigmoid的函数,每个都是a=sigmoid(wx+b)然后三个a*不同的c+b得到y,里面的参数有w,b,c,第二个b然后就可以进行梯度下降也不一定非要通过sigmoid激活函数来表示hardsig moid,也可以用ReLu激活函数来表示hard sigmoid和上面一样,将sigmoid直接换成Relu
2023-06-29 18:04:09
140
原创 李沐【动手学深度学习V2】-线性回归+基础优化算法(2023.06.20)
(1)(2)定义函数,此函数接受批量大小、特征矩阵和标签向量作为输入,生成大小为batch_size的小批量(3)定义初始化模型参数和定义模型(4)定义损失函数和优化算法(5)训练过程1floatf。
2023-06-20 16:23:31
186
原创 李沐【动手学深度学习V2】-自动求导(2023.06.19)
具体来说,如果一个张量的 requires_grad 属性被设置为 True,那么在对该张量执行任何操作时,PyTorch 都会在后台构建一个计算图,并跟踪该张量的计算历史。requires_grad 是 PyTorch 张量(Tensor)的一个属性,它用于指示是否需要对该张量进行梯度计算。如果一个张量的 requires_grad 属性被设置为 True,那么 PyTorch 会在计算图中跟踪该张量的计算,并将其梯度累积到其对应的张量的 grad 属性中,以便进行反向传播算法的求导计算。
2023-06-19 20:40:05
144
原创 李沐【动手学深度学习V2】-矩阵计算介绍(2023.06.19)
标量/向量求导后变成了行向量,梯度指向的是值变化最大的方向。向量/标量变成了列向量。
2023-06-19 16:37:21
60
原创 李沐【动手学深度学习V2】-数据操作+数据预处理(2023.06.19)
在代码中,pd.get_dummies(inputs, dummy_na=True) 的参数 dummy_na=True 表示将 “Alley” 特征中的缺失值(“NA”)也视为一种取值,并将其转换为一个新的数值型变量 “Alley_nan”,取值为 0 或 1,表示原始数据中的 “Alley” 特征是否缺失。(7).shape()中的参数,表示每一层中括号中有几个元素,括号层数有3层,第一个轴只有1个元素,第二个轴有3个元素,第三个轴有4个元素,这就是xx.shape1,3,4的来源。
2023-06-19 13:06:54
583
原创 B站小土堆Pytorch视频学习——利用GPU训练(2023.06.16)
【代码】B站小土堆Pytorch视频学习——利用GPU训练(2023.06.16)
2023-06-16 16:23:04
92
原创 B站小土堆Pytorch视频学习——完整的模型训练套路(2023.06.16)
准备数据集,dataloader加载数据集,搭建网络模型,创建网络模型实例,定义损失函数,定义优化器,设置网络训练的参数,开始训练,验证模型,最后保存模型。可以将训练结果展示。
2023-06-16 11:34:25
315
原创 B站小土堆Pytorch视频学习——模型的保存和读取(2023.06.15)
但自定义的模型用方法一的时候,加载的时候可能会报错,要把模型架构定义导入进来。
2023-06-15 21:46:18
53
原创 B站小土堆Pytorch视频学习——损失函数+反向传播(2023.06.15)
【代码】B站小土堆Pytorch视频学习——损失函数+反向传播(2023.06.15)
2023-06-15 17:53:37
62
原创 B站小土堆Pytorch视频学习——实战演习网络层构建+Sequential(2023.06.15)
【代码】B站小土堆Pytorch视频学习——实战演习网络层构建+Sequential(2023.06.15)
2023-06-15 16:20:24
103
1
原创 B站小土堆Pytorch视频学习——池化层的基本操作(2023.06.15)
【代码】B站小土堆Pytorch视频学习——池化层的基本操作(2023.06.15)
2023-06-15 13:56:03
153
1
原创 B站小土堆Pytorch视频学习——卷积层的基本操作(2023.06.14)
【代码】B站小土堆Pytorch视频学习——卷积层的基本操作(2023.06.14)
2023-06-14 21:16:04
122
原创 B站小土堆Pytorch视频的学习-神经网络的基本骨架-nn.Module的使用(2023.06.14)
nn的全称是Neural Networks,一般来说都要重写此方法。在 PyTorch 中,神经网络的建模通常是通过继承 nn.Module 类来实现的。在 nn.Module 的子类中,可以定义一些层和其他模块,然后在 forward 方法中将它们组合起来。call函数里写的有调用forward函数,所以tudui(x)可以直接tudui(x)->call(x)->forward(x)
2023-06-14 17:00:05
86
原创 B站小土堆Pytorch视频学习-Dataloader的使用(2023.06.14)
【代码】B站小土堆Pytorch视频学习-Dataloader的使用(2023.06.14)
2023-06-14 14:17:26
78
原创 B站小土堆Pytorch视频学习-torchvision中的数据集使用(2023.06.14)
(2)如何通过tensorboard展示出来。(1)建立一个数据集和测试集。
2023-06-14 11:18:59
68
原创 B站小土堆Pytorch视频学习——Transforms的使用(2023.06.13)
transforms 是 PyTorch 中 torchvision 库的一个模块,用于进行图像数据预处理和增强。它提供了一系列常用的数据预处理函数,如图像裁剪、缩放、翻转、归一化等。transforms 模块中的函数通常用于创建数据预处理管道,以将输入数据转换为模型所需的格式。例如,在训练神经网络时,通常会对输入图像进行随机翻转、随机裁剪等增强操作,以扩展数据集并提高模型的泛化能力。Compose(transforms):将多个数据预处理函数组合成一个管道。
2023-06-13 20:57:40
218
1
原创 B站小土堆Pytorch视频学习——TensorBoard的使用(2023.06.13)
TensorBoard 是一组用于数据可视化的工具。它包含在流行的开源机器学习库 Tensorflow 中。
2023-06-13 14:52:18
264
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人