-
随机取样随机取样与全局训练是无关的,因为在全局训练中所有的样本都会被用来估计梯度。而在随机梯度下降和小批量梯度下降中,随机取样是十分重要的。这是为了得到梯度的无偏估计,样本必须是独立同分布的。如果训练过程中的一些样本不是随机从训练集中取出的,模型的参数可能会沿着一个方向偏移太多。以下是两种随机取样的思路:在语音处理任务中,若所有样本都可以被载入内存中,那可以通过对样本索引进行相应的处理抽样就可以达到样本抽样的效果。在语音处理任务中,若无法将所有样本载入内存进行计算,可以采用滚动窗的方法每次加载一块数据进内存,然后再窗内随机取样。batch大小选择在训练过程中都需要从训练样本的一个批量集合中进行梯度计算,而批量块大小的选择同时会影响收敛速度和模型结果。批量块选择的两种常见情况:整个训练集:选择整个训练集进行模型训练是最常见的情形。随机训练集:代表性方法就是随机梯度下降(SGD),每次只需要用一个样本进行梯度的计算和迭代。综合上述两中批量块的选择情况,提出这种方案“小批量”进行训练,迭代速度比整个数据集更快,比随机训练集更容易收敛。在语音识别任务中,前期可以选择较小的批量块,比如64到256个样本,而后期换用较大的批量块,比如1024-8096个样本。学习率从梯度下降算法的角度来说,通过选择合适的学习率,可以使梯度下降法得到更好的性能。学习率,即参数到达最优值过程的速度快慢,当你学习率过大,即下降的快,很容易在某一步跨过最优值,当你学习率过小时,长时间无法收敛。因此,学习率直接决定着学习算法的性能表现。可以根据数据集的大小来选择合适的学习率,当使用平方误差和作为成本函数时,随着数据量的增多,学习率应该被设置为相应更小的值(从梯度下降算法的原理可以分析得出)。另一种方法就是,选择不受数据集大小影响的成本函数-均值平方差函数。一般常用的学习率有0.00001,0.0001,0.001,0.003,0.01,0.03,0.1,0.3,1,3,10。
-
在官方文档中并未查询到有关机器学习方面的资料。目前市场中已经有一部分数据库公司正在进行机器学习方面的功能研发,比如gbase的GBMLLib库,可以进行简单的数据挖掘和机器学习功能,请问DWS是否也有类似的功能?
-
参加华为云DevCloud训练赛不仅可以练学一体涨知识分享学习心得还可以拿最终大奖本贴盖楼更有好礼相送!>>戳此处立即报名大赛<<学习经验、实验问题对软件行业的看法、为未来工作场景的好奇统统可以发表在此贴的评论区快在评论区燥起来喽~【盖楼有奖】参与方式:在本贴当中分享程序员、写代码、秃头、对程序员工作的好奇,统统都可以!楼层为6、16、66可获得华为攻城狮行李牌1个;楼层为96、136、166可获得帆布包1个;楼层为266层,可获得50元京东卡1张!!盖楼领奖方式:请关注站内私信,活动于6月23日结束后,将在14个工作日内私信领奖事宜。(分割线)以下规则针对参与大赛并提交作品同学们必看内容哦~>>戳此处立即报名大赛<<【大赛规则】1、本次训练营分为三个环节:DevCloud学习课程、在线沙箱实验、线下校内小班授课实验;2、完成前两个环节的内容,并发表了心得分享的同学,可获得华为云官方结业证书(电子版);3、心得分享评分标准:请同学们按照学习经验、产品真实反馈、遇到的问题等这几个维度发表真实的使用感受;4、参与小班授课的同学,根据线下实验成绩(60%)+心得分享(40%)=总成绩,根据总成绩排名,分别评出以下奖项:卓越奖1名、优秀奖1名、进步奖1名、积极奖2名、青春奖10名(详情见下表)。奖项奖品卓越奖1名华为云官方结业证书+华为手表FIT优秀奖1名华为云官方结业证书+华为freebuds 4i无线耳机进步奖1名华为云官方结业证书+华为快充移动电源10000mah积极奖2名华为云官方结业证书+华为手环4e活力款青春奖10名华为云官方结业证书说明:(1)奖品将在大赛结束后统一发放;(2)如因缺货等原因导致奖品缺失,将替换为等价值其他奖品。【心得分享示例模板】我的华为云账号:xxx我的分享:本次学习经验、实验问题、对软件行业的看法、为未来工作的好奇等等不限,如:本次实验比较复杂,但很有学习意义,尤其在###环节,很有收获。附实验完成截图:有任何问题请找华为云天津小助手呦~
-
参加华为云DevCloud训练赛并完成心得分享的同学你们的证书已经制作完成啦请在本贴附件中下载按照名字找到自己的证书即可~欢迎日后多多参与活动哦~【竞答奖】奖项内容:1、完成在线课程学习、沙箱实验、心得分享的同学,均可获得官方结业证书(电子版);2、参与小班授课的同学,根据线下实验成绩(60%)+心得分享(40%)=总成绩,根据总成绩排名,分别评出以下奖项:卓越奖1名、优秀奖1名、进步奖1名、积极奖2名、青春奖10名奖项奖品卓越奖1名华为云官方结业证书+华为手表FIT优秀奖1名华为云官方结业证书+华为freebuds 4i无线耳机进步奖1名华为云官方结业证书+快充移动电源10000mah积极奖2名华为云官方结业证书+华为手环4e活力款青春奖10名华为云官方结业证书说明:(1)奖品将在大赛结束后统一发放;(2)如因缺货等原因导致奖品缺失,将替换为等价值其他奖品。参与方式:1、参加训练赛的同学,点击报名链接并“立即报名”;2、根据报名页面,据实填写学校信息、专业、学号、姓名等。报名成功后,可在线学习课程、完成沙箱实验;请及时进行心得分享;3、完成上述3步的同学(课程学习+沙箱实验+心得分享),即获得领取华为云官方证书(电子版)的资格,请及时将真实姓名+心得分享截图,评论在此贴中,完成信息登记,内容仅工作人员可见。工作人员将在大赛结束后,在评论区打包发送电子证书,可自行下载;4、证书将在大赛结束后14个工作日内发放完成;5、本次活动一切解释权归华为所有。证书示例:
-
论文名称:self-attention aligner: a latency-control end-to-end model for ASR using self-attention network and chunk-hopping作者:Linhao Dong / Feng Wang / Bo Xu发表时间:2019/2/18论文链接:https://paper.yanxishe.com/review/16749?from=leiphonecolumn_paperreview0420为了解决RNN结构的语音识别模型存在的训练时间长、对一些噪音很敏感等问题,作者参考了transformer结构设计了一个语音识别模型,其中编码部分使用了时间维度的池化操作进行下采样来进行时间维度的信息交互并提高模型速度,解码的部分设计了一种模拟CTC的对齐结构。此外,作者将语音识别模型与语言模型进行端到端的联合训练,使得CER得到进一步提升。将transformer结构应用语音识别,今天已经不新鲜了。但是就去年本文发表的时期而言,将另一个领域的优秀模型应用到本领域来,会遇到什么问题,要怎么解决这些问题,如何进行优化?本文的这些思路都是很值得参考的。比如,transformer模型能很好的解决文本类的NLP任务,那么将其与语音识别联合训练,也更有可能收敛,以达到提高表现的目的。转自AI研习社,https://www.leiphone.com/category/academic/QWnCOMr50v4w5a7x.html
-
求小助手能在上传上架关于机器学习,深度学习的书
-
【华为云AI论文精读会2021】直播活动,2021年5月13日(周四)晚上19:00不见不散,让更多人低门槛使用经典算法!1.直播页面(建议先看海报进群关注直播抽奖福利):https://bbs.huaweicloud.com/live/cloud_live/202105131900.html2.直播实操活动,学以致用马上动手起来吧:https://marketplace.huaweicloud.com/markets/aihub/activity/detail/?id=1d888fe4-7538-4a4a-a9f5-dadda9f5d912华为云AI论文精读会2021邀请计算机视觉、迁移学习、自然语言处理等领域专家学者基于华为云ModelArts解读经典论文算法,让更多人来低门槛使用经典的算法,论文算法实战赛邀请AI开发者基于ModelArts进行经典论文的复现和算法实战学习。华为云AI论文精读会2021 · 论文算法实战赛报名地址:https://competition.huaweicloud.com/information/1000041393/introduction各位可爱的开发者小伙伴:看完白璐斌老师的直播(直播回看链接:待更新),你是不是也跃跃欲试,想自己动手做一下【DynamicRCNN-目标检测算法实战】呢?华为云已经帮大家做好详细的baseline,欢迎大家动手实操:DynamicRCNN-目标检测算法实战baseline:https://marketplace.huaweicloud.com/markets/aihub/article/detail/?content_id=d86d6bdf-08fa-4561-9355-a0a653430146ModelArts开发速成,看这里!!(快速入门、进阶学习资料、开发案例、开发者活动等):https://bbs.huaweicloud.com/forum/thread-90020-1-1.html按照【DynamicRCNN-目标检测算法实战baseline】成功提交实战结果(上传模型到AI GAllery),就可以获取精美的礼品,我们将按照时间顺序(提交完成之后修改会以你修改的时间为完成时间,建议完成提交的请勿修改)。活动规则:认真观看直播,之后按照【DynamicRCNN-目标检测算法实战baseline】提交实战结果在【DynamicRCNN算法】下认真评价(10个字以上)将提交的实战结果(你上传的模型)链接回帖在:https://marketplace.huaweicloud.com/markets/aihub/activity/detail/?id=1d888fe4-7538-4a4a-a9f5-dadda9f5d912,并文字记录上传成功时间,如:2021/05/20上传+链接根据时间的顺序我们评选获奖用户活动奖项:第一名:华为蓝牙耳机Free Lace第二~四名:机械键盘第五~十名:无线鼠标参与奖(限量20个):认真完成实操,我们将为后面的同学准备神秘的华为云周边精美礼品活动时间:2021/05/13 21:00~2021/05/27 24:00对以上内容有任何疑问请在本帖回帖或扫描如下二维码回复“论文”加入交流群!活动规则 1)请务必使用个人账号参与活动(IAM、企业账号等账号参与无效);2) 为保证活动的公平公正,华为云有权对恶意刷活动资源(“恶意”是指为获取资源而异常注册账号等破坏活动公平性的行为),利用资源从事违法违规行为的用户收回抽奖及奖励资格,本次活动一个实名认证账号只能对应一个收件人,如同一账号填写多个不同收件人,不予发放奖励;3)本活动规则由华为云在法律规定范围内进行解释。华为云保留不时更新、修改或删除本活动规则的权利。上述更新、修改或删除于公布时即时生效,用户应当主动查阅本活动规则的最新内容。4) 所有参加本活动的用户,均视为认可并同意遵守《华为云用户协议》,包括以援引方式纳入《华为云用户协议》的《可接受的使用政策》、《法律声明》、《隐私政策声明》、相关服务等级协议(SLA),以及华为云服务网站规定的其他协议和政策(统称为“云服务协议”)的约束。如果您不同意本活动规则和云服务协议的条款,请勿参加本活动。
-
作者:部陪原文链接: https://bbs.huaweicloud.com/blogs/265925背景 在银行传统的信用评估决策机制中,最常用的几个特征维度无非是个人资产、收入、信贷历史、抵押担保等。这些维度虽然能够反映借款人的还款能力,但是过于简单的规则往往也会拒绝掉很多潜在的优质客户。并且审核过程过于依赖网点客户经理,不但成本很高,人为风险也比较大。 随着互联网的快速发展,我们在网络上留下越来越多的轨迹,比如购物、租房、招聘、学历、社交信息等等。将这些特征引入到信用评分体系当中,能对金融机构的业务决策起到很好的辅助作用。这些特征虽然不直接反应一个人的信贷属性,但是能够帮助金融机构更好地全方位了解这个人。 利用大数据做金融风控的决策方式,是从数据本身出发,去反应一种与信贷属性的内在关联关系,这种关系不容易受偏见的影响,能达到更客观的效果。并且更加丰富的特征维度往往能够带来更高的预测准确率。但是在实际的实施过程中,银行受限于客户特征数据不足,构建的模型往往无法达到预期的效果,而从第三方获取数据的渠道又壁垒重重,隐私合规地使用数据面临巨大的挑战。合作方案 华为TICS基于可信硬件和MPC算法构建联邦学习平台,实现了数据不出本地的情况下进行多方联合建模。解决了多方数据共享交换过程中端到端隐私保护问题。 图1 华为TICS服务架构图支付平台提供特征数据,通过TICS安全代理接入系统。xx银行提供标签样本数据,通过TICS安全代理接入系统。TICS服务提供能力:基于元数据完成数据授权过程,用户可以自定义设置数据隐私策略。基于可信硬件TEE完成秘钥生命周期管理。基于OPRF的自研PSI算法提供样本对齐能力,对齐过程中原始数据不出本地,对齐字段通过密文比较,结果在本地加密保存。使用同态加密技术,将标签样本发送到支付平台侧,完成特征分箱和IV值计算。提供基于XGBOOST算法的联邦训练能力,由支付平台发起训练过程,结果模型输出到支付平台侧,提供业务系统使用。业务系统对银行方开放接口提供业务支持。执行过程基于区块链实现存证,方便事后做安全审计。实现过程环境搭建图2 TICS服务部署方式支付平台基于TICS服务在华为云上创建数据联盟,并且邀请银行方加入联盟。支付平台使用TICS服务在华为云上部署安全代理。银行使用TICS服务部署边缘代理到本地环境中。数据准备支付平台把准备好的特征数据csv文件放到OBS,通过安全代理将特征数据的元数据发布到联盟,并设置访问权限。银行把准备好的标签数据csv文件放到安全代理本地目录,将标签数据的元数据发布到联盟,并设置访问权限。数据预处理支付平台从安全代理发起样本对齐请求,TICS通过PSI算法实现样本对接,并将结果加密保存到各自本地目录。支付平台从安全代理发起分箱和IV值计算请求,TICS通过同态加密方式将银行标签发送到支付平台方,实现加密计算。支付平台根据IV值筛选有价值特征。模型训练支付平台从TICS服务发起联合风控建模任务,TICS负责任务调度,并将任务发送给双方安全代理进行计算。TICS将训练完的模型保存到支付平台的OBS上。开放业务业务系统得到联合风控模型,用于信用评分服务,提供API接口对银行开放服务。行通过API接口调用获取个人信用评分。总结 TICS服务提供的数据共享交换过程中端到端隐私保护能力,为行业内部、跨行业之间的数据协同创造了可能性。使用联邦学习进行联合建模弥补了传统金融机构中缺乏用户画像数据的问题。在反欺诈领域、信贷准入审批、风险定价、贷后监测等方面都将为金融机构提供巨大的价值。
-
单细胞测序作为一种相对较新的技术,研究人员能够根据细胞表达的基因等特征来识别和分类细胞类型。但是,这类研究会产生大量数据,其中包含数十万到数百万个细胞的数据集。 近日,美国密歇根大学的研究团队开发了一种新算法,使用在线学习,大大加速了大量数据集处理。与先前方法相比,效率的提高不会牺牲数据集的对齐方式和聚类保留性能 。该算法将对整合不断增长规模的单细胞多组数据集越来越有用。 该研究以「使用在线学习的迭代单细胞多组学集成」(Iterative single-cell multi-omic integration using online learning)为题发表在《自然生物技术》(Nature Biotechnology)杂志上。 众所周知,**是由细胞组成的。然而,令人惊讶的是,科学家们仍在尝试确定组成我们的器官并有助于我们健康的各种细胞。 长期以来,细胞类型的定性特征包括形态学、细胞表面蛋白的存在或缺失以及广泛的功能。 最近,高通量单细胞测序技术使研究人员能够描述多种分子模式,包括基因表达,染色质可及性和DNA甲基化。整合不同的单细胞数据集为全面和定量定义离散细胞类型和连续细胞状态提供了巨大的机会。 然而,目前的单细胞数据集成并非旨在集成多种模式或无法扩展为海量数据集。此外,现有方法都不能在不从头开始重新计算的情况下合并新数据。 Welch说:「我们在之前发表的LIGER方法[1]的核心部分扩展了非负矩阵分解方法,开发了一个在线学习算法——在线集成非负矩阵分解(iNMF)算法。该算法可解决以上限制,允许对不同组学技术生成的单细胞数据集进行可扩展和迭代的集成。」 iNMF的示意图:将输入的单细胞数据集联合分解为共享的(W)和特定于数据集的(Vi)元基因以及相应的元基因表达水平或细胞因子负荷(Hi)。这些元基因和细胞因子负载量提供了细胞「身份」的定量定义,以及其在生物学环境中的变化方式 在线iNMF两个重要优点的是:(1)通过小批量多次循环数据来集成大型单细胞多组数据集;(2)集成持续到达的数据集,训练期间的任何时候都无法使用整个数据集。 研究表明在线学习可用于单细胞数据集成的三种不同场景。 高效收敛而不失准确性 Welch说:「我们的技术允许任何拥有计算机的人都可以对整个生物体进行分析。这正是该领域发展的方向。」 在实验中,研究人员评估了在线iNMF算法在成年小鼠皮层数据集上的收敛性,该数据集包含来自额叶皮层的156,167个细胞和来自后皮层的99,186个细胞。在线iNMF算法在训练集和保留测试集上的收敛速度都比以前的批处理iNMF算法快。在线iNMF在不同生物学背景下的其他几个数据集上也表现出卓越的性能。 在线iNMF算法所产生的可视化在质量上与批处理iNMF非常相似,表明几乎相同的数据集对齐方式和对所有三个数据集合的原始聚类结构的准确保留。 所需时间和内存少 在线iNMF使用更少的时间和内存即可产生最先进的单细胞数据集成结果。 研究人员从同一只成年小鼠的额叶和后叶皮质数据中抽取了5个不断增大的数据集(从10, 000到255, 353个细胞)。将在线iNMF与批处理iNMF以及两种最新的单细胞数据集成方法进行基准测试。结果表明在线iNMF所需的运行时间不会随数据集大小的增加而大幅增加,并且存储每个微型批处理所需的内存量与单元总数无关。整体上,在线iNMF是最快的方法。 此外,在线iNMF算法使用的内存远远少于其他任何方法,内存使用量主要由mini batch大小决定。 可扩展性 为了证明在线iNMF的可扩展性,研究人员在大量前人研究的数据集上进行了验证,比如小鼠器官发生细胞图谱(MOCA)等。 「由于在线iNMF一次只能处理一个mini batch,我们的方法允许通过互联网而不是从磁盘流处理数据集。」Welch说,「为了演示此功能,我们创建了一个HDF5文件,其中包含鼠标皮质数据集(255,353个细胞),将文件保存在远程服务器上,然后直接通过Internet读取mini batch。以这种方式处理皮质数据集大约需要18分钟,而使用本地磁盘读取大约需要6分钟。」 无需从头开始 Welch解释说,「我们的新方法允许将新数据集添加到现有数据集中,而无需重新处理旧数据集。」 「这对于越来越多地生成数百万个细胞集至关重要。」Welch说。「今年,已经有五到六篇论文具有200万个或更多的单元,而仅用于存储原始数据所需的内存量远比任何人在他们的电脑上拥有的要多。」 Welch将在线技术比作Facebook和Twitter之类的社交媒体平台进行的连续数据处理,这些平台必须处理用户不断生成的数据,并为人们的订阅提供相关的帖子。「在这里,我们在世界各地的实验室进行着实验并发布其数据,而不是人们写推文。」 这一发现有可能大大提高其他「雄心勃勃」的项目效率,如**图谱和**细胞图谱。Welch说:「了解身体细胞的正常相互作用是了解它们如何在疾病中出错的第一步。」参考文献:[1]Welch, J. D. et al. Single-cell multi-omic integration compares and contrastsfeatures of brain cell identity,https://pubmed.ncbi.nlm.nih.gov/31178122/论文链接:https://www.nature.com/articles/s41587-021-00867-x参考内容:https://pubmed.ncbi.nlm.nih.gov/31178122/转载https://www.jiqizhixin.com/articles/2021-05-10-4
-
TLDRTVM 深度学习编译器对 WASM 和 WebGPU 的支持。实验表明,TVM 的 WebGPU 后端在将模型部署到 Web 时可以接近原生 GPU 性能。在这里插入图片描述引论计算是现代机器学习应用的支柱之一。引入 GPU 以加快深度学习工作量,大大提高了进步速度。鉴于部署机器学习无处不在的需求日益增长,浏览器成为部署智能应用程序的自然场所。虽然 TensorFlow .js 和 ONNX .js是将机器学习引入浏览器的现有努力,但 Web 版本和本地版本在性能上仍然存在非同小的差距。众多原因之一是缺乏对 Web 上的 GPU 的标准和执行访问。WebGL 缺乏重要的功能,如计算着色器和通用存储缓冲器,这些功能是高性能深度学习所必需的。WebGPU 是下一代 Web 图形的即将推出的标准,有可能显著改变这种状况。与最新一代图形 API(如 Vulkan 和 Metal)一样,WebGPU 提供一流的计算着色器支持。为了探索在浏览器中使用 WebGPU 进行机器学习部署的潜力,增强了深度学习编译器 Apache(孵化)TVM,以针对 WASM(用于计算启动参数和调用进入设备启动的主机代码)和 WebGPU(用于设备执行)。初步结果是相当积极的-第一次,可以部署机器学习应用程序在网络上,同时仍然接近本地性能的GPU。机器学习编译器
-
前言常见的多GPU并行的方法有model parallel 和 data parallel两种,这里主要讲的是data parallel:并行训练数据,相当于增大了batch_size.主要需要注意的几点: 数据集如何在不同的设备间分配 误差梯度如何在不同的设备间通信 BatchNormalization如何在不同的设备间同步(使用会提升一点,但是会降低一点并行速度)一、DataParalled和DistributeDataParallel DataParalled只能用于单机多卡,而DistributeDataParallel可以用于单机多卡,多机多卡 单机情况下通常DataParalled要慢于DistributeDataParallel二、多GPU训练常见启动方式 torch.distributed.launch: 代码少,启动速度快(用的多) 注意: 如果开始训练后,手动强制终止程序,有小概率会出现进程没有杀掉的情况,最好看下GPU占用情况。# 其中nproc_per_node为并行GPU的数量python -m torch.distributed.launch --nproc_per_node=2 --use_env train_multi_gpu_using_launch.py torch.multiprocessing: 代码多点,速度慢点,但是拥有更好的控制和灵活性(这里不讲)三、torch.distributed.launch代码讲解3.1、main中添加了几个新的变量注意: 这里一般只需要手动选择syncBN即可,后面三个参数不要动,系统会自动选择 # 是否启用SyncBatchNorm BN在多个GPU上同步 parser.add_argument('--syncBN', type=bool, default=True, help="同步BatchNormalization") # 不要改该参数,系统会自动分配 parser.add_argument('--device', default='cuda', help='device id (i.e. 0 or 0,1 or cpu)') # 开启的进程数(注意不是线程),不用设置该参数,会根据nproc_per_node自动设置 parser.add_argument('--world-size', default=4, type=int, help='number of distributed processes') parser.add_argument('--dist-url', default='env://', help='url used to set up distributed training')3.2、初始化各进程环境# 初始化各进程环境init_distributed_mode(args=args) def init_distributed_mode(args): # 使用python -m torch.distributed.launch --nproc_per_node=2 --use_env train_multi_gpu_using_launch.py指令 # --use_env这个参数,他就会在我们os环境中(os.environ)存入RANK、WORLD_SIZE、LOCAL_RANK if 'RANK' in os.environ and 'WORLD_SIZE' in os.environ: # 多机多卡:WORLD_SIZE代表使用几台机器,RANK代表第几台机器,LOCAL_RANK代表某台机器上第几块GPU设备 # 单机多卡:WORLD_SIZE代表有几块GPU,RANK=LOCAL_RANK代表哪块GPU args.rank = int(os.environ["RANK"]) args.world_size = int(os.environ['WORLD_SIZE']) args.gpu = int(os.environ['LOCAL_RANK']) elif 'SLURM_PROCID' in os.environ: # 一般不执行 args.rank = int(os.environ['SLURM_PROCID']) args.gpu = args.rank % torch.cuda.device_count() else: # 一般不执行 print('Not using distributed mode') args.distributed = False return args.distributed = True torch.cuda.set_device(args.gpu) args.dist_backend = 'nccl' # 通信后端,nvidia GPU推荐使用NCCL print('| distributed init (rank {}): {}'.format( args.rank, args.dist_url), flush=True) # 创建进程组(重要) # backend:通信后端 init_method:使用默认(env://) world_size:几块GPU rank:当前进程处于哪块GPU # 注意:对于不同的进程而言,它的world_size是相同的,但是rank是不相同的 dist.init_process_group(backend=args.dist_backend, init_method=args.dist_url, world_size=args.world_size, rank=args.rank) dist.barrier() # 等待每一块GPU都运行到这个地方之后再接着往下走 3.3、调整学习率学习率要根据并行GPU的数量进行倍增,这里方法不一定,有很多种这里暴力增加,直接乘以GPU个数# 学习率要根据并行GPU的数量进行倍增 world_size = GPU数量args.lr *= args.world_size # 也可以写成这样args.lr *= max(1., args.world_size * args.batch_size / 64)3.4、在第一个进程中进行打印和保存等操作 if rank == 0: # 在第一个进程中打印信息,并实例化tensorboard print(args) print('Start Tensorboard with "tensorboard --logdir=runs", view at http://localhost:6006/') tb_writer = SummaryWriter() if os.path.exists("./weights") is False: os.makedirs("./weights") 3.5、DistributedSamplerDistributedSampler: 给每个rank(gpu)对应的进程分配训练的样本索引 train_sampler = torch.utils.data.distributed.DistributedSampler(train_data_set) val_sampler = torch.utils.data.distributed.DistributedSampler(val_data_set)
-
经典算法所谓“工欲善其事必先利其器”,要解决问题,就要有好的算法。Scikit-Learn库中的几种经典机器学习算法:一、K最近邻(KNN)这个算法思路特别简单,就是随大流。对于需要贴标签的数据样本,他总是会找几个和自己离得最近的样本,也就是邻居,看看邻居是什么标签。如果他的邻居中的大多数样本都是某一类样本,他就认为自己也是这样一类样本。参数k,就是邻居的个数,通常是3,5,7,等不超过20的数字。在机器学习算法中,常用的距离计算公式包括欧式距离和曼哈顿距离所以,KNN算法的结果和K值的取值有关系,要注意的是,KNN要找的邻居都已经是“站好队的人”,也就是已经正确分类的对象。下面进行实战:对心脏病数据的进行推断客户是否有心脏病:1.导入数据:import numpy as np # 导入NumPy数学工具箱import pandas as pd # 导入Pandas数据处理工具箱df_heart = pd.read_csv("heart.csv") # 读取文件df_heart.head() # 显示前5行数据2.查看患病个数:import matplotlib.pyplot as pltimport seaborn as sns #导入seaborn画图工具箱sns.countplot(x="target", data=df_heart, palette="bwr")plt.show() 3.对某些特征转换为数值类型的哑变量:a = pd.get_dummies(df_heart['cp'], prefix = "cp")b = pd.get_dummies(df_heart['thal'], prefix = "thal")4.划分训练集和测试集:# 构建特征和标签集y = df_heart.target.valuesX = df_heart.drop(['target'], axis = 1)from sklearn.model_selection import train_test_split # 拆分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X,y,test_size = 0.2,random_state=0)5.进行特征缩放:# 进行特征缩放from sklearn import preprocessingscaler = preprocessing.MinMaxScaler()X_train = scaler.fit_transform(X_train)X_test = scaler.transform(X_test) =6.模型训练:from sklearn.neighbors import KNeighborsClassifier # 导入kNN算法k = 5 # 设定初始K值为5kNN = KNeighborsClassifier(n_neighbors = k) # kNN模型kNN.fit(X_train, y_train) # 拟合kNN模型y_pred = kNN.predict(X_test) # 预测心脏病结果from sklearn.metrics import (accuracy_score, f1_score, average_precision_score, confusion_matrix) # 导入评估标准print("{}NN 预测准确率: {:.2f}%".format(k, kNN.score(X_test, y_test)*100))print("{}NN 预测F1分数: {:.2f}%".format(k, f1_score(y_test, y_pred)*100))print('kNN 混淆矩阵:\n', confusion_matrix(y_pred, y_test)) =7.寻找最佳K值# 寻找最佳K值f1_score_list = []acc_score_list = []for i in range(1,15): kNN = KNeighborsClassifier(n_neighbors = i) # n_neighbors means k kNN.fit(X_train, y_train) acc_score_list.append(kNN.score(X_test, y_test)) y_pred = kNN.predict(X_test) # 预测心脏病结果 f1_score_list.append(f1_score(y_test, y_pred))index = np.arange(1,15,1)plt.plot(index,acc_score_list,c='blue',linestyle='solid')plt.plot(index,f1_score_list,c='red',linestyle='dashed')plt.legend(["Accuracy", "F1 Score"])plt.xlabel("K value")plt.ylabel("Score")plt.grid('false')plt.show()kNN_acc = max(f1_score_list)*100print("Maximum kNN Score is {:.2f}%".format(kNN_acc)8.结论当K=3时,F1分数达到89.86%,虽然K=7、8时也能达到88%,但是此时的F1分数不如k=3高。KNN算法在寻找最佳邻居时,要将余下所有的样本都遍历一遍,以确定谁和她最近,因此,如果数据量特别大,他的计算成本还是比较高的。=
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签