- 博客(19)
- 收藏
- 关注
原创 DeepSeek模型的本地化部署
2025年新春最大的科技新闻莫过于DeepSeek开源发布了其R1版本,凭借蒸馏后的“小模型”(相对于大模型参数量和训练算力需求而言)依旧可以有媲美OpenAI-O1-min的优秀表现。如果说之前大模型虽然功能强大,但是其较高的部署与应用门槛依旧将普通人拒之门外,那么如今的DeepSeek的R1版本的各种蒸馏版本可以说直接让大模型“飞入寻常百姓家”。为什么要尝试本地部署开源大模型,比如DeepSeek?本着上述考虑,利用春节假期难得闲暇,我们也来对DeepSeek尝尝鲜!
2025-02-02 22:12:48
942
原创 LSTM Error:one of the variables needed for gradient computation has been modified by an inplace
② 这就导致在计算第二批次时,计算图中涉及的h0和c0是源于第一批次的计算得到的(而这些h0和c0又是第一批次计算图中参数的函数);默认状态下为了反向计算相关参数的梯度,必须通过第二批次输入的h0和c0回溯到第一批次中的变量,必然用到第一批次的计算图,然而此时的计算图早已释放了!③ 即便使用retain_graph=True保存了上一次的计算图,但是这一过程中的h0已经不再是最初的h0,因此会提示“in-place”错误!最终发现问题出现在LSTM的隐藏变量与记忆变量的递归引用上。
2024-10-31 16:37:05
855
原创 AI | 自注意力机制(Self-Attention)
Transformer基于Self-Attention机制实现了一个强大的通用AI框架,这里的通用,指的是Transformer最初用于处理NLP问题,但是后续研究证实其可以应用与图像、视频等多个领域,从而实现了文本、图像、视频、语音的多合一,即为通用AI模型。需要注意的是,由于注意力分数本身是由查询方和比较方的内积相似度计算得到,因而将其作为权重求和时可以实现强相关的向量贡献大,相关性小的向量贡献小的效果,从而实现了自动提取与目标向量相关的上下文信息的目的。
2023-11-22 19:30:00
487
原创 PyTorch | 基于GRU模型的古诗AI实践
接下来需要定义我们自己的GRU模型,由于PyTorch的模型都源于共同的父类nn.Module,因此需要在定义时建立继承关系。我们的GRUModel类中主要包含两部分:①初始化构造函数:首先调用父类的初始化函数,然后将所需数据全部内化为类内数据;接下来定义神经网络结构中各个组成部分,如GRU层、flatten层、dropout层、全连接fc层以及交叉熵损失函数②定义前向传播函数:主要用于PyTorch构造计算图,按数据流向顺序组合神经网络中定义的各个层即可。
2023-08-31 16:00:00
433
原创 PyTorch | 张量Tensor变形记
4)考虑到LSTM最后需要拼接一个线性全连接层,以将结果转变为所有可能字符的概率,因而需要将三维度张量5×31×64转变为155×64,直观上理解就是将单个字符的128嵌入向量转变为64,且输出一个包含5首古诗所有字符样本新嵌入向量的矩阵。5)将得到的155×64张量与线性系数矩阵(待训练)64×3542(假定3542是字库中不重复字符数量),恰好可以得到155×3542的输出,其含义为155个字符的预测结果恰好是一个涵盖3542字库待选对象的概率向量;各个张量元素的位置不会打乱吗?
2023-07-27 01:00:00
281
原创 PyTorch | 快速入门教程
PyTorch作为日益受到学术界喜爱的一种深度学习实现框架,对应的各种技术书籍也如雨后春笋般涌入视线。然而由于PyTorch自身具有强大的功能实现和灵活的自定义控制,若想短时间内吃透也并非易事。PyTorch最好的学习方式之一莫过于边学边实践,一层含义是利用实时交互反馈的代码效果,立竿见影般将模块、方法功能与使用规范映入脑中;另一层含义则是遵循认知过程中循环上升模式,先建立对PyTorch基本功能的认知,然后在后续技术实践中逐步扩充、完善、加深对PyTorch技术框架的理解掌握。
2023-07-14 00:15:00
2358
原创 AI | 神经网络和误差反向传播算法
本文并未进行详细的数学公式推导,因为涉及链式法则相对繁琐。对于大多数ANN使用者而言,仅需要建立一种认知:ANN的求解可以借助梯度下降算法逼近损失函数最小值,其中偏导数的计算可以借由基于神经单元误差的误差反向传播算法递推计算,所用数值均为相应神经单元的线性输入与激活函数、输出值等——而这些数值在进行正向计算时均已存储在网络数据结构中了。
2023-06-29 06:30:00
230
原创 MOOC_AI | C01人工智能概述
大多数课程的第一课,都会对课程内容做一个基本的介绍,其核心离不开三个方面:为什么学?学什么?怎么学?根据不同老师教学风格,可能会补充介绍发展态势,引出未来挑战与期望。在多数人理解中,上述内容可以纳入“课程概述”范畴。自己也始终对“概述”抱有类似概念上的认识。只是最近孩子偶然问起什么是人工智能时,一时语塞,不知该从何处、以何种线索向孩子做简要说明。猛然发觉,原先熟悉的“概述”,已经涵盖了人工智能的基本信息与基本问题,完全可以作为对人工智能最基本的“知识图谱”。
2023-02-24 16:02:33
616
原创 PyTorch|Transforms运行机制
如同我们曾经做过的“5年高考3年模拟”,历届高考题类似于标准训练集,而模拟题则是在标准高考题上的演化和改变,若高考时遇到类似题目,则可以较好地的作答,从而实现了“泛化”能力。对于“torchvision.transforms”而言,其提供了常用的图像处理方法,典型如:数据中心化、数据标准化、缩放、裁剪、翻转、跳转、填充、噪声添加、灰度变换、线性变换、仿射变换以及亮度、饱和度和对比度变换等。从学习观的角度,模拟题的意义在于改变原始高考题的考查形式,从而对比凸显出不变的考点和解题方法。
2023-01-21 23:45:00
237
原创 PyTorch|数据读取机制之Dataloader与Dataset
2)若“drop_last=False”,则“1 Epoch = 11 Iteration”,其最后一个Iteration时样本个数为7,小于既定Batchsize。若样本总数87个,当Batchsize-8时,可以知道:1)若“drop_last=True”,则“1 Epoch = 10。”的作用是构建一个可迭代的数据装载器,每次执行循环的时候,就从中读取一批Batchsize大小的样本进行训练。若样本总数80个,当Batchsize=8时,可以知道“1 Epoch = 10 Iteration”。
2023-01-19 05:00:00
1751
原创 PyTorch|逻辑回归的简单实现
经过前面的学习,我们介绍了张量Tensor的基本操作,也知晓了PyTorch的AutoGrad系统。有了上述基础,便可以试着训练简单的机器学习模型了。今天我们将尝试训练一个简单的逻辑回归模型。逻辑回归模型()是线性的二分类模型,其通用模型表达式如下,其中f(x)被称为sigmoid函数,也称作Logistic函数,由于其具有光滑连续且单调递增,且以“0.5”作为分界点的特性,因此常可用于二分类模型的激活函数。如某样本输入sigmoid函数后其概率大于0.5,则判定为正类,反之判定为负类。yfWX。
2023-01-17 11:45:00
1316
原创 PyTorch|自动求导系统AutoGrad
从前述课程中,我们已经知道:PyTorch训练机器学习或深度学习模型时,依赖于计算优化目标函数(如Loss函数)时的反向传播梯度,并以此层层求导更新每个计算图中结点的数值(权重)。然而,深度学习架构中经常面临成百上千的待确定参数,而这意味着需要对几百个参数进行导数运算,对于人工而言无疑是困难且低效的。PyTorch为此提供了自动求导系统AutoGrad,只需要我们根据模型动态搭建好正向计算图,继而调用AutoGrad系统提供“backward”方法以实现模型训练过程。AutoGrad中最常用的方法是**“t
2023-01-16 09:45:00
644
原创 PyTorch|计算图与动态图机制
从图上来看,目标函数y针对w的偏导数,恰恰就是图中结点y到结点w的所有路径之和。默认情况下,只有我们创建的结点为叶子结点,其余计算图中的结点均非叶子结点,二者的区别在于,在一次后向传播计算完成后,非叶子结点的梯度值会被释放从而节省内存。按照上述法则计算偏导数,可以得到各个结点上的偏导数表示,并进而通过后向传播算法计算得到目标函数y在自变量x和w处的偏导数。计算图是用来描述运算的有向无环图。然后用计算图中的结点表示数据(结点),用边表示存在运算关系,辅之以运算符号标识,可以得到如下的计算图。
2023-01-13 11:45:00
1271
原创 PyTorch|简单实现线性回归模型
线性回归是分析一个变量与另外一个(或多个)变量之间关系的一种方法,该方法需要从实际数据中抽象出因变量Y、自变量X,且假定Y相对于X按照近似线性的方式变化,即函数图像上近似呈现一条直线。通常可以用下述公式表示,而模型求解目标为确定其中的斜率W与偏置b。
2023-01-12 11:45:00
1774
1
原创 PyTorch|Tensor基础操作:拼接、切分、索引和变换
在学习了Tensor的创建方法之后,接下来你可能会问:那么我们可以对Tensor进行哪些操作呢?不急,今天我们就来聊聊Tensor的操作方法。这部分主要包含两类:Tensor的基础操作:如拼接、切分、索引和变换Tensor的数学运算。
2023-01-11 16:00:34
2892
原创 PyTorch|Tensor的创建
Tensor是PyTorch中的基础数据概念,直译过来为“张量”。那么什么是张量呢?我们知道,数学是研究世间数量和空间关系的学科,“张量”作为一种特殊的数量形式,自然也来自于数学领域。最原始的数量就是标量,因为其只有“数量”而没有变化方向,如数字“1”。若将标量沿着某个方向进行数据扩展,就会得到一个1维数组,也称为1维张量(通俗理解是沿着某个方向“扩张”)。若在1维数组的基础上再添加一个方向,则容易变成2维数组,即2维张量。
2023-01-10 15:03:59
1195
原创 PyTorch|Windows安装配置PyTorch教程笔记
PyTorch是一个开源的Python机器学习库,其前身是Torch。2017年由Facebook人工智能院基于Torchtu推出了PyTorch,新版本不仅使用Python重写了大量内容,提高了灵活易用性,同时提供强大的GPU加速张量计算,并包含自动求导系统的深度神经网络。2022年9月,扎克伯格宣布PyTorch基金会已经成立,并归入Linux基金会旗下。目前PyTorch是使用人数增长最为迅速的深度学习框架,且由于其高度定制性和灵活性,日益受到学术研究领域的推崇。
2023-01-09 15:41:48
2825
原创 AI | RNN | 基础学习
可以看出,RNN结构最大的特点,是添加了新的数据流将不同的MLP连接起来,其中的数据流公式如下,其中a^{t-1} 表示t-1时刻传递的状态信息,x^t表示t时刻输入,可见t时刻的输出与向前传递的新状态信息均是t时刻输入和t-1时刻状态信息的函数。另一种可行的方式是采用“one-hot”编码, 即对所有不同的单词设定与数量相同的一个长向量,比如分析语料库中总计10000个单词,则建立一个维度10000的向量,当某个单词出现时,在其对应的位置上标记“1”,其余位置标记“0”即可。常见的RNN结构如下。
2022-12-30 16:10:06
868
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人