- 博客(12)
- 收藏
- 关注
原创 深度学习系统 (CMU 10-414 DLsystem Course) HW3(完)
项目结构:在这一章中,我们将实现一个线性代数后端,完全替换原来使用的numpy后端,具体实现在和中。我们将使用C++和CUDA来实现这个后端,并通过pybind11将其绑定到Python中。后端包括一些矩阵运算(矩阵乘法,元素乘法等)和等控制矩阵形状和排列的函数,前端使用Python实现,包括对后端的调用和一些控制函数(如,等)。移步到,在这一节中我们先实现,,,函数还有函数来判断一个数组是否是紧凑的。你可能会问为什么要这样,我觉得我也解释不清楚,但是在实践中你会越来越发现我们可以通过控制来完成一些操
2025-05-07 20:32:15
917
原创 深度学习系统(CMU 10-414 DLsystem Course)HW3
在这一章中,我们将实现一个线性代数后端,完全替换原来使用的numpy后端,具体实现在和中。我们将使用C++和CUDA来实现这个后端,并通过pybind11将其绑定到Python中。后端包括一些矩阵运算(矩阵乘法,元素乘法等)和Compact等控制矩阵形状和排列的函数,前端使用Python实现,包括对后端的调用和一些控制函数(如reshapetranspose等)。
2025-04-15 23:18:17
977
原创 Im2Col卷积算法
Im2Col算法是一种卷积算法的高效实现,通过将图像和卷积核重新伸展成向量来实现。首先我们给出参考实现,使用,本文采用的图像格式是(N,H,W,C)即(批量,图像高度,宽度,通道数),卷积核格式是(O,I,K,K)即(卷积核高度,宽度,输入图像的通道数,输出图像的通道数),而采用的格式是(N,C,H,W)和(O,I,K,K),所以这个参考实现中包含一个转换,最后将结果又转换到我们的格式中。生成一个样本A的第一个block的第一个通道与Weight的第一个通道按元素并相加就是第一个元素的卷积结果
2025-03-25 11:10:41
903
原创 深度学习系统(CMU 10-414 DLsystem Course)HW2
项目结构:Question 0首先将上一节的和复制到这一节课程代码的相应位置在这一个小节中所有的函数都应当返回大小的二维张量,其中faninfan_{in}fanin 是输入维度,fanoutfan_{out}fanout是输出维度,函数还会接受一个参数gaingaingain,代表缩放的比例,在接下来两种初始化方式中都是基于faninfan_{in}fanin和fanoutfan_{out}fanout来计算采样分布的参数的。请移步从对称的均匀分布(Uniform Distribute)中
2025-03-20 20:49:55
899
原创 深度学习系统(CMU 10-414 DLsystem Course) HW1
答:使用这一节的ops,构建隐式的计算图会自动帮助我们进行反向自动微分,我们可以从繁杂的微分事务中解脱出来了,这就是自动微分的魅力,可以将大部分注意力放在前向的实现上。在考虑矩阵的求导微分的时候其实不必想太多,将其视为标量来思考,在大多数情况下是没问题的,注意,这里所有的。不赘述反向自动微分的原理了,详细的原理可以看课程,总之,对于当前节点,假设当前节点的运算符是。的前几个维度进行求和,求和的维度的数量是两者维度长度的差值,,如果指定了轴,那么将该轴的指定的位置的维度大小置为1,将。
2025-02-27 12:59:13
1038
原创 CMU 10-414 DLsystem Course-HW0
你需要实现NeedleNecessaryelements ofdeeplearning)你可以叫他Minitorch,Litorch, littletorch, tinytorch… 只要你喜欢。他的基本风格与Pytorch Api接近,这意味着有Pytorch或者Numpy使用经验的初学者可以能够轻易上手,这个项目涵盖了Python API的前端与C/CPP/CUDA的后端,但是在课程前期,基本的线性代数计算可以由Numpy代劳,后期需要将其替换为由C/CPP/CUDA实现的后端计算。
2025-02-25 22:19:47
737
原创 使用C++模板技术对矩阵运算表达式静态分析加速计算
模板是C++的一大精髓,本节内容以Eigen中的一个最简单的技巧来展示模板能为我们做的一些有趣的事。本节内容不涉及:向量化指令要看懂本节内容你需要并且本节只考虑矩阵/向量加法, 矩阵的乘法显然可以如法炮制,不过会更复杂一些。我们先给出一个矩阵(或向量)类及其加法的平凡实现,这是任何人都绝对会的,为了减少模板参数带来的混乱,我就不将Scalar写入模板参数了,你可以在类外部使用或任何你喜欢的基本类型m3m1m2m3wheremn∈RN∗Nte。
2024-04-04 13:40:17
1510
1
原创 LearnOpenGL: 关于3D场景管理--------OctantTree Is All You Need.
【代码】LearnOpenGL: 关于3D场景管理--------OctantTree Is All You Need.
2023-06-16 11:32:32
766
21
原创 草履虫都能学会的简易VS环境配置pqxx教程
我们找到安装PostgreSQL的位置 进入12->bin文件夹下, 由于程序运行所依赖的动态链接库不止如上提示的一个, 所以我建议你可以把所有的lib开头, dll结尾的文件全部拷贝到刚刚的debug/release目录下, 之后你可以慢慢研究哪些库是冗余的.之后在你的工程文件夹下创建一个lib文件夹, 将之前生成的pqxxd.lib, pqxx.pdb, pqxxd.exp, pqxx.lib pqxx.exp复制到lib文件夹下。
2023-06-02 19:05:03
1425
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人