
人工智能
文章平均质量分 90
怡步晓心l
上班ing,比较忙
展开
-
Pytorch导出onnx模型并在C++环境中调用(含python和C++工程)
机器学习多层感知机MLP的Pytorch实现-以表格数据为例-含数据集和PyCharm工程中简单介绍了在python中使用pytorch搭建神经网络模型的步骤和代码工程,此处介绍AI模型的跨平台调用问题,即使用跨平台的ONNX框架,在C++代码中进行模型调用。在机器学习多层感知机MLP的Pytorch实现-以表格数据为例-含数据集和PyCharm工程中,我们对训练完成的模型进行了模型的保存:此处我们需要先加载保存的模型,如何再将其导出为onnx格式。这一步主要是要把保存的模型恢复出来:1.2、pytor原创 2025-01-12 21:58:04 · 1600 阅读 · 2 评论 -
机器学习多层感知机MLP的Pytorch实现-以表格数据为例-含数据集和PyCharm工程
中介绍了表格数据的多种可视化方法,帮助我们直观了解表格数据分布和数据格式。中介绍了表格数据的空值处理方法,具体包括均值替换、K类聚等等现在简单介绍MLP的经典模型的训练流程。原创 2024-12-27 22:46:35 · 691 阅读 · 0 评论 -
机器学习预处理-表格数据的空值处理
中详细介绍了表格数据的python可视化,可视化能够帮助我们了解数据的构成和分布,是我们进行机器学习的必备步骤。上文中也提及,原始的数据存在部分的缺失,需要进行数据的空值处理,下面进行介绍。原创 2024-12-16 23:14:36 · 500 阅读 · 1 评论 -
机器学习预处理-表格数据的分析与可视化
最近在做一些模型部署的工作,但是发现对于数据的处理、分析、训练方面还是缺少一些系统的学习,因此抽空余时间分析总结一些使用python进行数据处理的实用案例,希望能够方便自己已经其他人的Ctrl C+V。之前做稠密(表格)数据的处理都是使用一些现有的分析软件去做(如SPSS),学习成本低但是自由度比较受限,此处介绍使用python的处理。原创 2024-12-15 22:19:15 · 1298 阅读 · 0 评论 -
机器人寻路算法双向A*(Bidirectional A*)算法的实现C++、Python、Matlab语言
最近好久没更新,在搞华为的软件挑战赛(软挑),好卷只能说。去年还能混进32强,今年就比较迷糊了,这东西对我来说主要还是看运气,毕竟没有实力哈哈哈。但是,好歹自己吭哧吭哧搞了两周,也和大家分享一下自己的收获吧,希望能为后来有需要的同学提供一些帮助。我其实不太了解寻路算法的,很多代码也是找的demo自己改的,非常感谢这些大佬的帮助,有些引用可能现在也找不太到了,列不出来,非常感谢万能网友的代码,在此一起感谢啦!部分参考如下:A*算法路径规划之Matlab实现A算法路径规划博文附件1.zip基于matlab原创 2024-03-27 10:45:34 · 2821 阅读 · 0 评论 -
非常有趣的AI应用-用大语言模型来玩星际争霸2(附代码链接)
偶然看到的一个使用大语言模型LLM来玩星际争霸2的应用,作为一个星际争霸的十年老粉,我直接狂喜,来简单试验一下,在此分享给大家。先简单介绍一下这是如何实现的,从直觉上来讲,就是把游戏信息以文字的形式发送给大语言模型(通过api接口),然后完全根据大语言模型(GPT 3.5)反馈的建议进行决策。简单分析一下这样的优势,大语言模型在全局决策上更具备优势,能够理解游戏的不同进程并给出不同阶段应该做什么的建议。此外,大语言模型能够根据对方的兵种给出克制出兵(检测到蟑螂就出不朽者等等),主动的去侦察等等。原创 2024-01-18 11:07:06 · 2684 阅读 · 8 评论 -
14、强化学习Soft Actor-Critic算法:推导、理解与实战
stochastic policies: 这是指实际执行的动作是对概率分布采样得到的,因为TRPO and PPO都是AC框架下的产物,其执行的动作取决于输出策略网络的概率分布的采样。deterministic policies:可以通过网络给每个动作的打分,通过贪婪策略选定最高打分的动作执行。on-policy&off-policy:on-policy就是采样的数据和某个策略强绑定,也就是采样的数据只能用于某个策略的训练,策略更新后原来的数据就没用了。原创 2024-01-13 11:13:17 · 8555 阅读 · 5 评论 -
13、近端策略优化Proximal Policy Optimization (PPO) 算法:从原理到实践
Reward:奖励R,每次(每一步)与环境进行交互都会获得奖励,玩一整局,奖励的和自然是越多越好。Q(s,a):动作价值函数,其输入为当前状态和要执行的动作,输出为该动作能带来多大的价值,因此,一种贪心的方法是选择能够使Q(s,a)最大动作执行。QπstatEst1at1∑l0∞γlrstlQπstatEst1at1l0∑∞γlrstlQ(s,a)的维度等于动作空间的维度。原创 2024-01-11 17:50:58 · 3005 阅读 · 0 评论 -
11.3、信赖域策略优化算法TRPO强化学习-运用实践
TRPO强化学习算法主要分为3个部分,分别介绍其理论、细节、实现本文主要介绍TRPO的理论和代码的对应、实践其他算法:07、基于LunarLander登陆器的DQN强化学习案例(含PYTHON工程)08、基于LunarLander登陆器的DDQN强化学习(含PYTHON工程)09、基于LunarLander登陆器的Dueling DQN强化学习(含PYTHON工程)10、基于LunarLander登陆器的Dueling DDQN强化学习(含PYTHON工程)11、基于LunarLander登陆器的A2C强原创 2024-01-10 10:29:35 · 1030 阅读 · 0 评论 -
11.2、信赖域策略优化算法TRPO强化学习-约束优化求解
TRPO强化学习算法主要分为3个部分,分别介绍其理论、细节、实现本文主要介绍TRPO的优化式子的求解其他算法:07、基于LunarLander登陆器的DQN强化学习案例(含PYTHON工程)08、基于LunarLander登陆器的DDQN强化学习(含PYTHON工程)09、基于LunarLander登陆器的Dueling DQN强化学习(含PYTHON工程)10、基于LunarLander登陆器的Dueling DDQN强化学习(含PYTHON工程)11、基于LunarLander登陆器的A2C强化学习(原创 2024-01-09 16:45:28 · 1095 阅读 · 0 评论 -
11.1、信赖域策略优化算法TRPO强化学习-从理论到实践
**一般梯度下降法的缺点:** 1. 更新步长难以选取 2. 数据采样效率低**TRPO的优点:** 1. 使用了多个近似加速 2. 使用了重要性采样,提升了样本效率 3. 使用自然梯度法进行更新,解决了策略网络更新步长难以选取的问题原创 2024-01-09 15:15:53 · 1402 阅读 · 0 评论 -
最速下降法、梯度下降法、共轭梯度法---理论分析与实践
最近被TRPO算法搞得头大,对于其中用到的共轭梯度法等优化算法也不了解,在此详细分析一下最速下降法、梯度下降法、共轭梯度法三者的异同。下面是使用最速下降法得到的优化过程图像,其中心位置为最小值点,大致的搜索方向是由右上到中心,每一次转折点就代表已经。,而是往往直接指定一个超参数的学习率Lr,修改上述的Matlab代码,不再使用最速下降法的步长计算式(之前也提到了,最速下降法是个蛮牛一样的角色,每次迭代是不撞南墙不回头的类型(由此可见,最速下降法是个蛮牛一样的角色,每次迭代是不撞南墙不回头的类型(原创 2024-01-08 13:18:09 · 2306 阅读 · 0 评论 -
pip安装时出现fatal error C1083: 无法打开包括文件: “xxx.h”: No such file or directory-从根源解决
此外,添加的路径对报错似乎没有作用,报错的路径还是D:\Program_Professional\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\include\cstring(11): fatal error C1083。我把ucrt里面的所有头文件都复制到了\BuildTools\VC\Tools\MSVC\14.38.33130\include\里面,但是又报错找不到windows.h,于是放弃这种方法。原创 2023-12-28 22:03:07 · 10072 阅读 · 4 评论 -
11、基于LunarLander登陆器的A2C强化学习(含PYTHON工程)
从最终获得的奖励来看,西瓜是大于芝麻的,但是如果芝麻就在我桌上,但是西瓜在20km以外,那可能我还是选择芝麻得了。1是捡芝麻的动作价值,0.1是捡西瓜的动作价值,虽说西瓜好吃,但是太远了,所以其动作价值打分特别低。A2C(Advantage Actor-Critic)在原来的AC框架上进行改进,主要的改进是其Critic网络不再依赖于动作a,更少的变量减少了其拟合的难度。:动作价值函数,其输入为当前状态和要执行的动作,输出为该动作能带来多大的价值,因此,一种贪心的方法是选择能够使Q(s,a)最大动作执行。原创 2023-12-26 14:56:02 · 1299 阅读 · 0 评论 -
10、基于LunarLander登陆器的Dueling DDQN强化学习(含PYTHON工程)
LunarLander复现:07、基于LunarLander登陆器的DQN强化学习案例(含PYTHON工程)08、基于LunarLander登陆器的DDQN强化学习(含PYTHON工程)09、基于LunarLander登陆器的Dueling DQN强化学习(含PYTHON工程)原创 2023-12-22 19:54:10 · 1002 阅读 · 0 评论 -
09、基于LunarLander登陆器的Dueling DQN强化学习(含PYTHON工程)
其输出实际上是动作价值函数,该函数的维度等于动作空间的维度,就是你能执行的动作的数量。由此,Dueling DQN实际上是把输出拆成了两部分,一部分是Q的均值mean(Q),一部分是Q-mean(Q)的部分,两部分的和就是Q函数,与DQN一致。,朱元璋开局一个碗,到发家致富建立大明,必然是发奋刻苦,抓住实际,因此,他的每一个动作的选择都至关重要,会对他的未来造成很大的影响。因此,将原来的动作价值函数拆分为状态价值函数mean(Q)和动作优势函数Q-mean(Q),是合理的,原创 2023-12-22 14:24:57 · 965 阅读 · 0 评论 -
with torch.no_grad()在Pytorch中的应用
即使一个tensor(命名为x)的requires_grad = True,在with torch.no_grad计算,由x得到的新tensor(命名为w-标量)requires_grad也为False,且grad_fn也为None,即不会对w求导。在模型的评估模式下,对验证数据集进行前向传播并计算性能指标,而不计算或存储梯度信息。虽然在某些情况下忘记使用 torch.no_grad() 可能不会立即导致错误,但为了确保计算效率和正确性,建议在不需要梯度计算的情况下使用 torch.no_grad()。原创 2023-12-22 13:30:34 · 3718 阅读 · 0 评论 -
ValueError: setting an array element with a sequence...
报错:ValueError: setting an array element with a sequence…a是一个list,其包含两个元组,使用np.array进行转换,会报错:有的numpy版本不报错而是警告:VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with differe原创 2023-12-16 19:17:07 · 9343 阅读 · 1 评论 -
07、基于LunarLander登陆器的DQN强化学习案例(含PYTHON工程)
其基本思想是创建一个额外的网络,通常被称为目标网络(Target Network),该网络的结构与主要网络相同,但其权重的更新是缓慢的,即它不会在每个步骤中都进行更新。这通常是通过将主要网络的权重与目标网络的权重进行某种形式的平均来实现的。能够得到的状态是一个8维向量,包括着陆器在x和y方向上的坐标、x和y方向上的线速度、角度、角速度,以及两个布尔值,表示每个着陆腿是否与地面接触。这就好像我们在高中学习的数组题目中,已经知道了an和an+1的关系式,去求解详细的an的表达式。开始学习机器学习啦,已经把。原创 2023-12-03 16:07:15 · 3175 阅读 · 2 评论 -
06、基于内容的过滤算法Tensorflow实现
中已经介绍了协同过滤算法的基本实现方法,但是这种方法仅根据用户的相似度进行推荐,而不关注用户或者电影本身的一些特征的匹配,基于内容的过滤算法正式为了对此进行改进。而这代表用户3看过的电影在content_item_train.csv这个文件的第40-43行,可以看到只有72378这个代号的电影,,这个特征是从原有的基础数据(如电影类型、用户爱好、用户年龄等等)中训练出来的,,吴恩达老师的数据在此基础上进行了二元化的处理,所以看着非常难以理解。因此,其所介绍的基于内容的过滤算法。原创 2023-11-30 16:57:19 · 1212 阅读 · 2 评论 -
05、基于梯度下降的协同过滤算法
但是,在吴恩达的课程里面,所介绍的基于梯度下降的协同过滤算法好像并没有直接涉及这一相似的矩阵计算概念?从电影推荐的角度来讲,对正在浏览的用户,若其对某个电影潜在的评分越高,则越有可能将此电影推荐给这个用户。协同过滤算法是一种常用的推荐算法,基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐。但是对于基于用户的协同过滤算法案例的数据,也就是第一张图,用户自己的喜好特征和电影本身的特质都是未知的(Y是打分的矩阵,第i行第j列代表第j个用户对第i个电影的打分的分数。原创 2023-11-29 16:47:34 · 445 阅读 · 0 评论 -
04、基于高斯分布的异常检测算法
数据的严重偏斜往往会导致监督学习算法面临巨大的挑战——尤其是在负样本数量稀缺的情况下,监督学习模型难以充分汲取必要的知识。这就引发了一个重要的问题:我们能否从这种极端不平衡的数据中成功地训练出一个有效的异常检测模型呢?处于图片的中心位置,是概率密度最高的地方,这代表此种情况是经常发生的。至于为什么小概率事件会等同于异常呢,打个比方,训练集得出结论人是吃米的,但是出来一个奇葩人居然吃虫子,那么这个不相当于出现异常了嘛。在训练之后,可以根据少量的数据确定异常的阈值,从而实现整个异常检测算法。原创 2023-11-28 19:59:54 · 631 阅读 · 0 评论 -
03、K-means聚类实现步骤与基于K-means聚类的图像压缩(2)
对于一张RGB888的彩色图像,假设其大小为1920 * 1080,那么其存储所需的大小为1920*1080 * 24(因为RGB分别用8位来表示,因此每个像素点有24位来表示其颜色)。此处有24位来表示颜色,可表示的颜色个数为2^24种,假设此处使用K=16的K-means聚类算法对其进行压缩,则代表压缩后的图像只包含K种颜色。原创 2023-11-28 10:28:48 · 202 阅读 · 0 评论 -
03、K-means聚类实现步骤与基于K-means聚类的图像压缩(1)
的课全部刷完了,现在开始熟悉一下复现代码。对这个手写数字实部比较感兴趣,作为入门的素材非常合适。STEP2:计算每个样本到各聚类中心的距离,并将样本归入最近的聚类中心。STEP3:重新计算每个聚类的中心,该中心为该类所有样本的平均值。STEP1:从数据集中随机选择k个样本作为初始聚类中心。此处直接以达到预设的最大迭代次数作为停止条件。开始学习机器学习啦,已经把。原创 2023-11-27 20:54:24 · 278 阅读 · 0 评论 -
02、Tensorflow实现手写数字识别(数字0-9)
Matplotlib是Python中的绘图库,而pyplot是其中的一个模块,用于绘制各种图形和图像。from sklearn.metrics import classification_report 这行代码的主要作用是导入classification_report 函数,以便在后续的代码中使用它来评估分类模型的性能。Dense层是神经网络中的全连接层,每个输入节点与输出节点都是连接的。原始的输入的数据集是5000* 400数组,共包含5000个手写数字的数据,其中400为20*20像素的图片,原创 2023-11-26 20:35:05 · 1272 阅读 · 0 评论 -
机器学习-激活函数的直观理解
f(x) = (e^x - e^(-x)) / (e^x + e^(-x))由此,任意数量的线性激活的神经元叠加,其功能和单个线性激活的神经元一致(线性叠加后仍然是线性的)。死亡:当神经网络的权重更新导致神经元的输入变为负值,由于ReLU函数的特性,其输出将会为0,并且在后续的训练中,该神经元的输出将一直保持为0,因此某些神经元会不起作用。在机器学习中,激活函数(Activation Function)是用于引入非线性特性的一种函数,它在神经网络的每个神经元上被应用。由此可见,激活函数就是拟合的最小单元。原创 2023-11-24 20:44:42 · 641 阅读 · 0 评论 -
01、Tensorflow实现二元手写数字识别
Matplotlib是Python中的绘图库,而pyplot是其中的一个模块,用于绘制各种图形和图像。结果可视化随机选择其中的64个数据绘图,每个图像的上方标明了其真实标签和预测的结果,这个是一个非常简单的示例,准确度还是非常高的。原始的输入的数据集是400 * 1000的数组,共包含1000个手写数字的数据,其中400为20*20像素的图片,因此对每个400的数组进行reshape((20, 20))可以得到原始的图片进而绘图。Dense层是神经网络中的全连接层,每个输入节点与输出节点都是连接的。原创 2023-11-24 10:43:04 · 834 阅读 · 0 评论 -
报错!Jupyter notebook 500 : Internal Server Error
看到网上很多人日志都不看直接更新包什么的什么不兼容,浪费了自己很多的时间。每个人毛病不同,要想看日志的报错不能直接在conda里面打开Jupyter notebook,从conda中进入指定环境的cmd原创 2023-11-21 15:02:59 · 2816 阅读 · 1 评论 -
报错:Could not load dynamic library ‘cudart64_110.dll‘; dlerror: cudart64_110.dll not found Ignore abo
Could not load dynamic library ‘cudart64_110.dll‘; dlerror: cudart64_110.dll not found Ignore above RTX4070安装tensorflow原创 2023-11-21 11:28:15 · 2936 阅读 · 0 评论 -
报错!error: subprocess-exited-with-error python setup.py bdist_wheel did not run successfully.
报错!error: subprocess-exited-with-error python setup.py bdist_wheel did not run successfully.原创 2023-11-21 10:48:24 · 4754 阅读 · 1 评论