tag 标签: 算法

相关博文
  • 2024-6-4 14:00
    0 个评论
    经纬恒润成功研发LRR610雷达先进算法!
    好消息!经纬恒润搭载Arbe芯片组的LRR610 4D成像雷达 算法开发出先进的后点云算法,并已圆满完成集成工作,这标志着智能驾驶感知系统迈向了一个新的里程碑。 经纬恒润自主开发的成像雷达算法,可以有效地跟踪数百个运动和静止目标,输出可行驶区域和道路边界,仅基于成像雷达点云,即可对常见道路目标进行分类识别,辅助驾驶决策,实现智能驾驶。当前这一算法成功地运行在 经纬恒润 自主开发的域控平台上。您是否期待一睹这些先进技术在实际应用中的风采?赶快点击下方链接观看精彩视频吧! 经纬恒润自主开发的成像雷达算法演示 了解更多: 请致电 010-64840808转6117或发邮件至market_dept@hirain.com(联系时请说明来自面包房社区)
  • 热度 5
    2023-11-18 17:03
    489 次阅读|
    0 个评论
    下载链接!! 本文介绍一款成熟的伺服驱动器方案,包含详细的软硬件方案。硬件方案包括原理图,PCB,BOM。软件方案包含源代码以及Hex(Bin)文件。软件部分也有相关位置模式中断定长功能应用步骤简单说明。小编觉得,这可以说是一份比较完整的方案,对于伺服驱动相关开发工程师有很大的提升和帮助。 硬件方案--显示板 显示板主要功能是按键,数码管等用户交互界面。包含5个按键,2个共阳极数码管,2个位移寄存器74HCT595D。PCB板是2层板。 硬件方案--大功率驱动板 大功率驱动板包含整流桥DB207S,变频器模块PS21767,变压器,运算放大器MCP6002T,LDO,光耦,电流传感器ACS710KLATR等器件。PCB是2层板,大面积铺铜过大电流。 硬件方案--控制板 控制板是整机控制单元,主控采用了DSPTMS320F28034PNT,包含了原理图,PCB文件,BOM文件。包括了D-sub15和D-sub25等接口,485通信,ADC采样等电路。PCB分了两个版本,一个是2层板,一个是4层板。 软件方案 软件方案包含了工程文件,无需自己再搭建工程。应该是用CCS打开,包含了详细的功能模块:485通信收/发独立功能,modbus相关功能,混合控制模式,转矩控制模式,估值滤波器,速度观测器,增量型PID等,有需要的工程师朋友应该在分析电路后仔细阅读代码,会有收获的。
  • 热度 2
    2023-9-20 10:57
    1227 次阅读|
    0 个评论
    一、实验目的 了解FFT的作用,掌握FFT 算法的算法原理、计算量和算法特点,实现FFT算法并通过CCS图形窗口查看结果。 官方网站:www.tronlongtech.com 二、实验原理1、傅里叶变换 傅里叶变换可以将一个信号从时域变换到频域。时域信号在经过傅立叶变换的分解之后,变为了不同正弦波信号的叠加,我们再去分析这些正弦波的频率,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。 2、离散傅里叶变换 离散傅里叶变换作为信号处理中最基本和最常用的运算,在信号处理领域占有基础性的地位,如果直接按照离散傅里叶变换的公式进行计算,求出N点X(k)需要N^2次复数运算、N(N-1)次复数加法,当N很大时,运算量是非常大的,这对于实时处理是无法接受的。 3、FFT算法 傅里叶快速算法的提出,使傅里叶变换成为一种真正实用的算法。根据傅立叶变换的对称性和周期性,我们可以将DFT运算中有些项合并。 在计算机上进行的DFT,使用的输入值是时域的信号值,输入采样点的数量决定了转换的计算规模。变换后的频谱输出包含同样数量的采样点,但是其中有一半的值是冗余的,通常不会显示在频谱中,所以真正有用的信息是N/2+1个点。FFT算法的原理是通过许多小的更加容易进行的变换去实现大规模的变换,降低了运算要求,提高了与运算速度。FFT不是DFT的近似运算,它们完全是等效的,FFT的过程大大简化了在计算机中进行DFT的过程。 4、程序流程 程序流程设计中首先产生测试信号,接着确定FFT基和旋转因子,然后进行FFT和FFT逆变换运算,最后输出FFT结果 5、数字信号处理库 本实验中的FFT算法是基于TI提供的数字信号处理库完成的。 DSPLIB 包含优化的、C语言可调用的通用信号处理例程,用于计算密集型实时应用程序。 调用这些例程的运行速度比直接用C语言编写的等效代码快得多,可以缩短应用程序开发时间。实验中使用的是 dsplib_c674x_3_4_0_0 。 6、dsplib_c674x_3_4_0_0 在CCS5.5 的安装路径安装DSPLIB后,会有相应的文件夹出现,包含组件库、头文件、测试示例和源码等。 7、函数源码FFT运算函数 程序使用DSPLIB 的库来进行FFT运算,调用的程序源码和使用说明可以安装DSPLIB后 查看。 调用的FFT函数中: 第一个参数是样本中FFT 的长度; 第二个参数是指向数据输入的指针; 第三个参数是指向复杂旋转因子的指针; 第四个参数是指向复杂输出数据的指针; 第五个参数是指向包含64 个条目的位反转表的指针。如果样本的FFT长度可以表示为 4 的幂; 第六个参数是4,否则 第六个参数是 2 ; 第五个参数是从主FFT开始的样本中的子 FFT偏移索引 。; 第六个参数是样本中主FFT的大小。 FFT逆变换函数 程序使用DSPLIB 的库来进行FFT逆变换,调用的程序源码和使用说明可以安装DSPLIB后查看。 调用的IFFT函数中: 第一个参数是样本中FFT 的长度; 第二个参数是指向数据输入的指针; 第三个参数是指向复杂旋转因子的指针; 第四个参数是指向复杂输出数据的指针; 第五个参数是指向包含64 个条目的位反转表的指针 ; 如果样本的FFT长度可以表示为 4 的幂,第六个参数是4,否则第六个参数是2 ; 第七个参数是从主FFT开始的复杂样本中的子FFT偏移索引 ; 第八个参数是样本中主FFT的大小。 8、二进制位翻转 FFT和FFT 逆变换函数中的第五个参数brev是指向包含64个表项的位反转表的指针,因此程序中需要提供64个表项,程序中的位反向表是计算出来的,可以通过代码提前转换的。 采用位反转的原因是因为FFT算法的蝶形内部两点交叉使数据以反转的方式输出而不是数字反转顺序。 二进制位翻转表的原理 首先确认二进制数的位数,64个数只需要有6位的二进制位数; 接着将二进制数分成两部分,前五位一部分,最后一位一部分; 最后进行二进制翻转,把最后一位放到最高位,剩下的五位进行翻转依次放入。 数组内存放的依次是0~63的二进制翻转结果,我们可以来看一个例子, (点击鼠标)以数字5为例,(点击鼠标)转换为二进制数是000101 (点击鼠标)接着进行二进制翻转,将“00010”看为一个部分,“1”看为一个部分,那么将“1”放到第一位,然后将后面的数据翻转过来进行放置即可 (点击鼠标)最后进行十六进制转换得到0x28,所以在数组的第6个数字为0x28。 三、操作现象 导入工程,选择Demo文件夹下的对应工程 编译工程,生成可执行文件 将CCS连接实验箱并加载程序 程序加载完成后点击运行程序 运行程序后,程序执行完成后会在断点处停下。 Single Time"选择单时域信号图,在弹出的界面设置相关参数,可查看DSP计算的FFT结果。 FFT Magnitude",在弹出的界面设置相关参数,可查看CCS计算的FFT结果。 对比后,可发现CCS和DSP计算的FFT结果相同, 实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
  • 热度 6
    2023-7-1 11:32
    500 次阅读|
    0 个评论
    浅析汽车芯片信息安全之安全启动
    一、汽车芯片信息安全发展现状 汽车的安全机制实际上主要包括功能安全(Safety)和信息安全(Security)两个方面。功能安全是涉及人身安全的保护机制,而信息安全则是保护我们的汽车系统里的信息不被恶意窃取和破坏。 早期的汽车芯片和软件系统设计中,由于汽车较少与外界有网络互联,所以并未考虑过多的信息安全性。随着科技的发展、汽车行业的发展,汽车也加入了万物互联的行列。由于汽车的智能化、网联化的提升,信息安全正在占据着越来越重要的地位。 信息安全不仅关系着用户的隐私,更关系着人的生命安全。一旦系统被非法入侵,汽车系统可能被恶意操控,从而可能造成汽车被盗取甚至车辆事故。 目前世界各国已经开始制定相关法规来保障汽车的信息安全。2021年初,联合国世界车辆法规协调论坛(简称UN/WP.29)发布了两个信息安全相关的重要法规R155/R156,即信息安全(Cybersecurity)/软件升级(Software updates)。 据悉,中国也在制定相应的信息安全法规《汽车整车信息安全技术要求》(中国版R155),《汽车软件升级通用技术要求》(中国版R156)。同年8月,国际标准组织ISO也公布了汽车网络安全标准ISO/SAE21434,规定了汽车系统、子系统和零部件应具备更强的安全性能以抵御网络攻击。 由此可见,汽车芯片作为汽车零部件里最核心的关键组件,其信息安全已成为汽车芯片设计的必备要素和重要考量。 二、安全启动的重要性 安全启动是典型的芯片信息安全方案中的一环,也是信息安全认证的重要一环。通过信息安全认证也会给产品带来更多的竞争力。 目前市面上考虑到安全的芯片基本都会选择支持安全启动功能。安全启动是通过启动时对镜像进行验证来保证启动时的软件是合法且未经篡改的,是在启动阶段保证信息安全的一种方式。 三、安全启动信任根 首先,安全启动需要一个信任根。信任根是密码系统中始终可以相信的来源。我们都知道ROM存储是只读的,基于此特性,我们可以将程序的第一段代码固化在ROM里作为安全启动的起点。这段代码无法被轻易替换,从而可保证每次启动第一段代码的可信性。 四、安全启动信任链 安全启动会对每一级镜像进行逐级验证,以保证下一级的镜像的合法性。镜像验证必须保证其连续性,否则则无法保证其验证的可信性。 像汽车芯片这种大型的SoC一般是多核系统,多核系统的启动可由BootROM校验下一级bootloader并由该bootloader加载不同核的一级bootloader,再由一级bootloader开始连续校验下面的镜像内容。 由于不同的SoC的设计不同,这里只是为了举例表明安全启动的信任链,每级镜像的名字可由开发者自己定义,其框图如下图所示: 五、安全启动实现 加密算法 在安全领域,使用加密算法来对通信过程进行加密是一种常见的安全手段。通过加密算法可实现对数据的保护以防止数据被泄露,同时也可防止数据被篡改。常用的加密算法一般分为对称加密算法和非对称加密算法。对称加密算法的加密和解密使用同一个密钥,而非对称算法则使用公钥和私钥两种密钥来进行加解密。公钥私钥成对存在,如用公钥加密需用私钥解密,反之亦然。 AES是最常用的对称加密算法,其拥有运算速度快,内存需求低,分组长度和密钥长度设计灵活等优点。对于非对称加密算法来说,典型的有RSA和ECC两种加密算法。RSA加密算法常被选择用于镜像的签名与验签。 签名与验签 由于非对称加密的速度远低于对称加密,故非对称加密算法不适用于数据量大的场景。我们一般使用SHA-1/SHA-2等算法计算得到Hash值以用来校验的数据完整性,并基于其进行加密计算得到镜像的签名。 RSA算法用来签名与验签是业界常见的做法。一般采用私钥加密得到签名,公钥解密来验证签名以保证信息来源的可信性。与此同时,也会采用填充技术来增加加密算法的破解难度。常见的RSA填充算法有PCK1.5填充,OAEP填充,PSS填充等。 对称加密的应用 签名与验签的过程保证了镜像内容的完整性与来源的可信性,但数据仍处于明文状态。若黑客可以读到数据的存储空间,仍面临信息泄露的危险。为了解决这个问题,我们可以通过使用对称加密算法来对数据进行加密。如此一来,就算数据被读走,没有正确的密钥也是无法解析其信息。 密钥的分配与保护 密钥的保护也是信息安全中的一个议题。如果密钥被窃取,一样会面临信息被泄露与篡改的危险。所以在芯片设计的过程中,如何生成、保存、载入密钥是一个要认真考虑的问题。 对于验签过程而言,必须保护好RSA算法的公钥以防止黑客将其替换伪造签名。由于RSA加密算法的公钥比较长,可选择将其Hash值固化在ROM里或者写在efuse上,在安全启动的过程中对公钥的Hash进行比对以保证公钥来源的可信性。 对于对称加密而言,必须保护好用于加解密的秘钥。可将其写在OTP或者efuse里,也可采用多级加密的方式来保护密钥以防止被入侵者窃取。 六、结语 本文简单介绍了一下汽车芯片安全启动的关键技术及其实现,简而言之,就是要保证启动镜像的可信性和完整性,以及尽量增加黑客窃取破坏的难度。 对于汽车芯片的信息安全而言,安全启动只是其中的第一步。我们还需要将严密的信息安全考量贯彻整个芯片的设计过程,以满足全球汽车市场对信息安全日益严格的需求。 关注公众号“优特美尔商城”,获取更多电子元器件知识、电路讲解、型号资料、电子资讯,欢迎留言讨论。
  • 热度 3
    2022-5-10 20:25
    2104 次阅读|
    1 个评论
    工程中经常会用到的控制算法想必就是PID了,现代控制理论为何陷入了迷思呢? 不去尝试,永远不知道新理论和算法能不能用。本文希望能给出一些控制算法研究中的工程哲学供大家参考。 先进控制算法为何给大家感觉不如PID呢? 一种可能,别人用上了,效果好,自己用不上,乃至说不知道怎么用,只能用PID,这说明自己落后。 另外一种可能,有很多所谓先进的理论和算法确实很难在实际中用,根本就是为了发论文而做的。 还有一种可能,大家都在用PID,但控制效果远不能令人满足,只是暂时找不到/发现不了更好的方法。 另外有个值得注意的,底层是PID,看中上层是不是PID。即虽然是PID,但是是结合比如自适应、模糊、容错等等。而且PID的调参是否用了比如频域分析、鲁棒等等。 如何区分这几者,是很重要的。 控制算法要能处理known known,known unknown,unknown known,unknown unknown。 只此一件的控制系统,在较为确定的环境里工作,参数可以专门针对硬件,调到很好。但也会跟温室一样,系统乃至环境的很多东西有明确的规定,甚至细到某个螺丝要拧几圈半,外界的干扰要可忽略,等等。如此的系统,有时可以应用上较为复杂的控制算法,也就没有什么好稀奇的:known known知道,unknown known能通过对系统不断加深理解变成known known,known unknown、unknown unknown则可以通过对系统和环境的控制减少到可忽略。 但商业化产品中的控制系统,上量之后件件之间有差距,加上使用环境不确定的话,known unknown、unknown unknown都会大,而控制算法要能鲁棒(不仅限于传统鲁棒控制中的鲁棒)到可以处理到这些,即使known known、unknown known处理到最好。 比如一个信号,近似等于个高斯白噪声,用过去数据,估算出均值与方差,是known known。但肯定不准的,因为现实中就不存在标准的高斯白噪声,于是做出一个误差区间,有各种做法,算是known unknown。但known known跟known unknown加起来,也还是与实际有差距,是unknown unknown,是there is nothing you can do about it的了。但常被忽视的是unknown known,比如这个信号里面,可以分离出一个周期信号(不一定是正弦),是一个干扰。知道之后,unknown known变成known known。如此等等。前面说了,可以从不同层面考虑,比如信号分成确定部分和随机部分,确定部分是known known。但确定部分与实际的确定部分有差别,是unknown known。随机部分,知道分布的话,是known unknown。随机部分也与实际的随机部分有差别,是unknown unknown。如是如是,不一而足。从这个层面分析,不如上一段中的分析对实际有指导意义。 当然还有系统。比如一个系统,有输入输出数据,建模、辨识出一个LTI模型,有参数,是known known。但这个模型肯定不是完全吻合数据,所以要给一定的不确定性,比如在参数上,可能有个区间,是known unknown。即使加上这个区间,也还是与实际有差别,是谓unknown unknown。但如果一分析,发现这个模型其实可以分离成一个LTI模型,加上一个比如Wiener模型,就是unknown known被发现了。 当然也可以在不同的层面分析。参数很多,花时间调,总能调出个鼻子乱舞的大象,特别是在仿真中更是如此。但物理学的历史告诉我们,这个时候,应该是存在更有结构化的理论框架。当然,这样的理论框架,如PID,如Kalman滤波,等等,也还是留有一定的参数让在实际中调,因为known unknown与unknown unknown,是另一个层面的问题了。
相关资源
  • 所需E币: 5
    时间: 2024-8-1 16:15
    大小: 14.58MB
    上传者: 周垚
    152张图表,轻松掌握17种常用算法!没有复杂公式,零基础也可轻松读懂!用Python3.7实现机器学习的相关算法!本书基于丰富的图示,详细介绍了有监督学习和无监督学习的17种算法,包括线性回归、正则化、逻辑回归、支持向量机、核方法、朴素贝叶斯、随机森林、神经网络、KNN、PCA、LSA、NMF、LDA、k-means算法、混合高斯分布、LLE和t-SNE。书中针对各算法均用Python代码进行了实现,读者可一边运行代码一边阅读,从而加深对算法的理解。
  • 所需E币: 5
    时间: 2024-7-18 14:15
    大小: 9.96MB
    上传者: weixianghui
    Matlab simulink模型包括:1. State of Charge(SOC) 扩展卡尔曼滤波和无迹卡尔曼滤波估计算法2. 主动均衡算法3.故障诊断、预充电
  • 所需E币: 1
    时间: 2024-5-25 11:07
    大小: 24.48MB
    主要是介绍数据结构和算法分析,很经典。
  • 所需E币: 0
    时间: 2024-3-12 10:43
    大小: 7.6MB
    上传者: htwdb
    随着计算机技术的飞速发展和生物识别技术的广泛应用,人们越来越多地关注身份认证的安全,指纹识别因其隐私性和便捷性,已经成为当前发展最成熟的身份认证技术,在各个行业领域中都得到了广泛应用.除了有着重要的理论意义和应用价值之外,指纹识别技术也是一门能广泛应用在信息安全、网络安全、犯罪处理等多个领域的综合性技术.本文以本人在校外实习期间参与完成的高性能指纹识别芯片课题为基础,详细介绍了指纹组成、特征及指纹识别算法流程,并对各个步骤的原理和算法具体实现过程做出了详细描述,并结合C语言指纹识别算法,针对PC端对系统时间、系统空间以及函数代码这三个方面提出了一些优化策略和方法.然后详细介绍了用MFC图形化界面设计指纹预处理图形交互界面的流程,通过对C语言各个模块函数的调用展示了指纹录入、指纹预处理的功能,并对界面进行优化,增强了软件界面的灵活性.   本文将研究设计分为"C语言算法描述与优化"和"MFC图形化界面设计"这两个主要部分:(1)C语言算法描述与优化:对指纹识别算法中指纹图像采集、指纹图像预处理、指纹特征提取这三个关键步骤的原理进行了介绍,并结合C语言指纹识别算法,详细描述了各个步骤的原理和算法实现过程.针对PC端系统时间、系统空间的一些优化方案的原理和具体实现进行了说明和概述.主要内容包括系统时间优化的方案如Gabor滤波模块优化、算法数据浮点转定点,系统空间优化的方案如选择合适的数据结构和尽量小的数据类型,并概括了一些实习工作中总结的函数代码优化的方法.(2)MFC图形化界面设计:着重介绍用MFC中的C++类库设计一个指纹预处理系统界面,这个系统界面的目的是评估指纹预处理算法,在MFC对话框类的基础上添加不同的控件,通过对C语言的算法调用,在PC端展示从文件中选择指纹图像、指纹预处理图像显示、各模块阈值自定义设定等功能,并对界面进行优化,实现了界面与控件自适应、界面尺寸控制等功能,增强了软件界面的灵活性.最后,本文对研究工作进行总结,并在本论文的工作基础上提出了一些进一步的优化方案,对课题未来进行展望.
  • 所需E币: 0
    时间: 2024-1-30 15:29
    大小: 2.32KB
    今天抽空跟大家讨论一下关于成为AI人工智能算法工程师的条件是什么?众所周知,AI人工智能是当前最热门的技术之一,那么需要掌握哪些技术才能胜任这一职位呢?我们今天就来唠一唠。算法工程师是一个很高端的岗位,要求有很高的数学水平和逻辑思维能力,需要学习高等数学、离散数学Q、线性代数、数据结构和计算机等课程。专业要求:计算机、通信、数学、电子等相关专业。学历要求:本科及其以上学历,大多数都是硕士及其以上学历。语言要求:英语要求熟练,基本上可以阅读国外相关的专业书刊。另外,还必须要掌握计算机相关的知识,能够熟练使用仿真工具MATLAB等,必须要掌握一门编程语言。那算法工程师到底具体需要哪些知识第一个:肯定就是数学和统计学数学和统计学是算法工程师必备的基础知识,要掌握线性代数、概率论、统计学等知识,才能理解和应用各种机器学习算法和模型。第二个:数据结构和算法数据结构和算法是算法工程师必备的知识,需要熟练掌握各种数据结构和算法,如数组、链表、树、图、排序、查找、动态规划等,以便能够设计和实现高效的算法。第三个:编程语言和工具算法工程师需要熟练掌握至少一门编程语言,如Python、C++等,并熟悉常用的开发工具和框架,如Git、JupyterNotebook、PyTorch等。第四个:深度学习深度学习是机器学习的一个子集,常见的深度学习算法包括受限波尔兹曼机、DeepBeliefNetworks、卷积网络、堆栈式自动编码器等。第五个:算法基础算法工程师需要掌握算法基础,包括线性代数、概率论与数理统计、数据结构、算法分析与设计等方面的知识。当然还有很多,在此就不一一列举,主要分为4个部分:数学基础、编程能力、算法基础、实战。接下来,我们聊聊大家最关心的薪资这块。算法岗位薪资方面:在前几年,算法岗的薪资确实是比开发岗要高很多,可以称之为红利期。但最近几年,算法和开发岗有趋于拉平的意思,但是相对来说,同级情况下,算法岗还是要高1~2k的样子。领域分类:算法岗位的方向还是很多的,一方面是按技术领域,可以划分为计算视觉(CV),自然语言处理(NLP),AIGC,语音算法等等。另一方面是按行业领域,分成气象、交通、工业。。。等等等等。方向不一样,技术栈相差非常大了。优缺点在薪资方面,算法打赢开发。在难度方面,算法打赢开发。在工作强度方面,开发打赢算法。在岗位数量方面,开发打赢算法。在职业周期长度方面,算法打赢开发。(这也是一些焦虑状态下的程序员对算法岗动心的原因)在职业发展上限方面,算法打赢开发。最后我们来谈谈十大基础算法都有哪些。一、选择排序过程简单描述:首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。其次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。这种方法我们称之为选择排序。二、插入排序我们在玩打牌的时候,你是怎么整理那些牌的呢?一种简单的方法就是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置。当我们给无序数组做排序的时候,为了要插入元素,我们需要腾出空间,将其余所有元素在插入之前都向右移动一位,这种算法我们称之为插入排序。三、冒泡排序1、把第一个元素与第二个元素比较,如果第一个比第二个大,则交换他们的位置。接着继续比较第二个与第三个元素,如果第二个比第三个大,则交换他们的位置….四、希尔排序五、归并排序六、快速排序七、计数排序八、桶排序九、基数排序十、堆排序
  • 所需E币: 0
    时间: 2024-1-30 12:04
    大小: 2.79KB
    上传者: 开心就很好了
    今天给大家讲讲关于AI,打通视觉,NLP,机器学习,深度学习,推荐搜索,AIGC,大模型等等这些当下最热门技术,我将从以下9个方面给大家做详细讲解关于AI人工智能算法工程师的相关知识。阶段一:从AI全面认知到基础夯实-行业认知&Python&必备数学阶段二:从AI核心技术理论体系构建到项目实战:机器学习&深度学习阶段三:构建AI的数据驱动力--数据预处理工程阶段四:AI深度学习框架实战-Pytorch从基础到进阶阶段五:AI核心算法+方法——经典深度学习模型实战阶段六:AI计算机视觉核心技术与项目实战-工业&医疗与直播&自动驾驶等主流领域阶段七:AIGC火热领域技术与项目-文本图像生成&扩散模型等阶段八:NLP自然语言处理与LLM大语言模型应用实战阶段九:AI工程师入行&转化&就业&面试指导首先,我们先来说说什么是人工智能:人工智能(ArtificialIntelligence),简称为AI,是一门集多学科于一体的综合性技术科学。它的核心目的是创造出能够模拟人类思维能力的机器,使其具备感知、思考和决策的能力。自然语言处理(NaturalLanguageProcessing,简称NLP)是计算机科学和人工智能领域的一个重要分支。它的核心目标是让计算机能够理解和生成人类自然语言,这包括了文本、语音等多种形式的人类语言输入输出。机器学习是一门人工智能的科学,其核心在于计算机通过对数据的学习和经验积累来自动提升性能。深度学习是机器学习的一个子领域,它受到人类大脑神经网络的启发,旨在模拟人类的学习过程。生成式人工智能——AIGC(ArtificialIntelligenceGeneratedContent),是指基于生成对抗网络、大型预训练模型等人工智能的技术方法,通过已有数据的学习和识别,以适当的泛化能力生成相关内容的技术。大模型是指包含超大规模参数(通常在十亿个以上)的神经网络模型。接下来,我们讲解环境的安装配置:安装CPU版本PyTorch#创建PyTorch环境condacreate-ntorch2python==3.10#进入环境condaactivatetorch2#安装cpu版本pytorchpipinstalltorch==2.0.0torchvision==0.15.1torchaudio==2.0.1--index-urlhttps://download.pytorch.org/whl/cpu验证CPU版是否安装成功importtorchprint(torch.__version__)print(torch.cuda.is_available())输出2.0.0+cpuFalseTensor存储的数值Tensor可以用多种方法进行初始化。下面给出例子:直接传数据Tensor可以直接从数据进行创建,数据类型会自动适应。importtorchdata=[[1,2],[3,4]]x_data=torch.tensor(data)print(x_data)使用Numpy数据可以通过Numpy矩阵中进行创建importtorchimportnumpyasnpnp_array=np.array([[1,2],           [3,4]])x_np=torch.from_numpy(np_array)print(x_np)利用已有tensor根据已有的数据形式(形状,数据类型),创建出新的tensorimporttorchdata=[[1,2],[3,4]]x_data=torch.tensor(data)#保持了x_data的数据属性与形状x_ones=torch.ones_like(x_data) print(f"OnesTensor:\n{x_ones}\n")#保持x_data的形状,重新定义x_data的数据属性x_rand=torch.rand_like(x_data,dtype=torch.float) print(f"RandomTensor:\n{x_rand}\n")最后到案例部分:案例1:导入两个列表到Dataset举一个例子,fromtorch.utils.dataimportDataset,DataLoaderclassMyDataset(Dataset):#继承自Dataset  def__init__(self,):#定义数据集包含了什么东西    self.x=[iforiinrange(10)]    self.y=[2*iforiinrange(10)]  def__len__(self):#返回数据集的总长度    returnlen(self.x)  def__getitem__(self,idx):#当数据集被读取时,需要返回的数据    returnself.x[idx],self.y[idx]my_dataset=MyDataset()my_dataloader=DataLoader(my_dataset)forx_i,y_iinmy_dataloader:  print("x_i=",x_i,"y_i=",y_i)输出x_i= tensor([0]) y_i= tensor([0])x_i= tensor([1]) y_i= tensor([2])x_i= tensor([2]) y_i= tensor([4])x_i= tensor([3]) y_i= tensor([6])x_i= tensor([4]) y_i= tensor([8])x_i= tensor([5]) y_i= tensor([10])x_i= tensor([6]) y_i= tensor([12])x_i= tensor([7]) y_i= tensor([14])x_i= tensor([8]) y_i= tensor([16])x_i= tensor([9]) y_i= tensor([18])案例2:导入Excel数据到Dataset中dataset只是一个类,因此数据可以从外部导入,我们也可以在dataset中规定数据在返回时进行更多的操作,数据在返回时也不一定是有两个。fromtorch.utils.dataimportDataset,DataLoaderimportpandasaspdclassMyDataset(Dataset):#继承自Dataset  def__init__(self,data_loc):#定义数据集包含了什么东西    data=pd.read_excel(data_loc)    self.x1,self.x2,self.x3,self.x4,self.y=data['x1'],data['x2'],data['x3'],data['x4'],data['y']  def__len__(self):#返回数据集的总长度    returnlen(self.x1)  def__getitem__(self,idx):#当数据集被读取时,需要返回的数据    returnself.x1[idx],self.x2[idx],self.x3[idx],self.x4[idx],self.y[idx]if__name__=='__main__':  data_loc="模仿数据读取.xlsx"  my_dataset=MyDataset(data_loc)  my_dataloader=DataLoader(my_dataset,batch_size=2)  forx1_i,x2_i,x3_i,x4_i,y_iinmy_dataloader:    print(f"x1_i={x1_i},x2_i={x2_i},x3_i={x3_i},x4_i={x4_i},y_i={y_i}")
  • 所需E币: 0
    时间: 2023-8-4 17:08
    大小: 982.15KB
    上传者: L716
    算法交易是国内交易趋势 
  • 所需E币: 1
    时间: 2023-7-10 14:56
    大小: 1.08MB
    上传者: 张红川
    温度控制的pid算法的c语言程序.doc
  • 所需E币: 1
    时间: 2023-7-10 15:04
    大小: 1.7MB
    上传者: 张红川
    中英文翻译---常规PID和模糊PID算法的分析比较.doc
  • 所需E币: 1
    时间: 2023-7-10 14:51
    大小: 76KB
    上传者: 张红川
    51单片机PID算法程序(二)位置式PID控制算法.doc
  • 所需E币: 1
    时间: 2023-7-10 14:52
    大小: 101.89KB
    上传者: 张红川
    BA单片机PID算法的直流电机测控系统1.pdf
  • 所需E币: 1
    时间: 2023-7-3 10:39
    大小: 44KB
    上传者: 张红川
    PI的计算算法.doc
  • 所需E币: 2
    时间: 2023-7-1 20:56
    大小: 125.84MB
    上传者: Argent
    Python算法教程
  • 所需E币: 2
    时间: 2023-7-1 20:29
    大小: 56.4MB
    上传者: Argent
    C++数据结构与算法(Edition4)
  • 所需E币: 1
    时间: 2023-6-29 08:59
    大小: 1001.61KB
    上传者: 张红川
    【10】图像聚类算法.pdf
  • 所需E币: 1
    时间: 2023-6-28 13:50
    大小: 4.67MB
    上传者: 张红川
    【13】OpenCV算法解析.pptx
  • 所需E币: 1
    时间: 2023-6-28 13:41
    大小: 25.14MB
    上传者: 张红川
    百面机器学习算法工程师带你去面试.pdf
  • 所需E币: 1
    时间: 2023-6-28 11:26
    大小: 35.26KB
    上传者: 张红川
    CRC算法原理及C语言实现.pdf
  • 所需E币: 1
    时间: 2023-6-25 13:33
    大小: 712.5KB
    上传者: 张红川
    DSP大作业-快速傅立叶变换(FFT)算法实验.doc
  • 所需E币: 1
    时间: 2023-6-25 13:33
    大小: 464.92KB
    上传者: 张红川
    FFT算法DSP实现(DIT基2FFT运算流图).pdf