41岁阿里工程师:35岁转管理,真的是必经之路吗?

LLM Developer角色演进:从API调用到能力边界定义 大语言模型(LLM)正推动AI工程范式从模块化开发转向系统级协同。其核心在于理解LLM并非万能工具,而是需被精准界定能力边界的‘智能协作者’;这要求开发者深入掌握检索增强(RAG)、意图-状态-动作三维搜索建模等底层原理,从而在事实准确性、响应时效性与业务合规性之间做出动态权衡。技术价值体现在将模糊用户需求转化为可监控、可归因、可降级的生产级服务;典型应用场景覆盖法律合同审查、电商客服升级、汽车售后知识库与旅游行程规划等复杂交互系统。本文聚焦LLM Developer这一新兴角色的本质跃迁,揭示其如何通过效 阅读详情

墨玦,阿里巴巴 iDST 高级技术专家。博士毕业于北京邮电大学,计算机应用专业,目前主要从事语音技术工程化方面的研发。回顾在阿里的三年时光,他感慨良多,写下了这篇总结,与大家共勉。

13467292-a094c02670a8ff23

今年的程序员节,也恰恰是我在阿里工作满3年的时候,借此机会盘点一下自己近3年来的工作,也为自己后续发展把把关。个人的眼界和思考总是有限的,特别是对于研究和技术领域来说,知道得越多,其实就会知道自己有多无知,从而对未知心生敬畏,并因未知的广阔而兴奋。

我是1976年生人,属龙,今年41岁,所以可以算是老程序员了,15年前我读研的时候,就被一起创业的小伙伴称为老何了。我对写代码确实喜欢,大概在96年,大三的时候拿到了高级程序员证书,算是一桩可以拿来吹的事。

博士毕业工作以来,最大的乐趣就是学习和深入思考。所以,从来不以工作过程中项目或者业务的简单或者复杂而困惑。对自身的发展,我一直有一个明确的指导方针:一步一个脚印,提升自己解决问题的能力,不给自己设限。我大概在10年前面试一个40岁的大叔的时候,就认真地思考过,结论是:我喜欢写代码,我会为此坚持一辈子。

13467292-0173faaffcf8d70d

一、既然这个项目这么重要,我们就干吧

回归正题,总结一下在阿里最近3年的工作。前两年,我主要在御膳房数据引擎团队做猪头小队长,聊两个重点经历的项目。

第一个就是5k+,一个通用大数据平台。刚去一个月就赶上这个集合京杭两地的大项目,确实蛮幸运的。在这个项目中印象深刻的有几个地方吧,一个是立项的时候参与方案的讨论,因为涉及京杭两地、跨部门、跨团队的沟通,各个团队的老大难免在一起相爱相杀,我们一帮小弟在旁边参与讨论。一直相杀到凌晨的时候,在自由发言的阶段,我实在忍不住,跳出来说:既然这个项目这么重要,我觉得我们就干吧。真的是仗着自己在创业公司积累的锐气跳出来说这一句。我觉得大不了就是拼啦。

我说完就意识到这可能给自己的老大带来了巨大的麻烦。很幸运我老大也早就扯烦了,站出来承担责任,一时间各个老大分别出人出枪,一时间群情激奋。最后的责权分配在20分钟内就完成了,甚至一位老阿里都哭了。

感谢那一晚上的感觉,也感谢阿里给我一帮很棒的队友和老大。永远记得,后面996两个月,在京杭两地互换出差的过程中,我负责两个小模块的项目管理,我发挥自己解决问题快的能力,哪里有窟窿我就去哪里堵,当然,整个团队的人都非常强大也非常努力。在最后项目结束评奖的时候,我拿了个最佳救火队员奖,我真喜欢这个奖。

虽然我也是项目的PMO之一,但是除了打酱油,更多的是观摩和学习阿里的项目管理和组织协调。这个项目真的很难,做的过程中经历了各种妥协,项目完工后我们又断断续续还了一年的技术债,但是当时那种拼搏自己和燃烧自己成就BIG ONE的感觉,再难重现。后来也跟一些其他公司的同学沟通关于数据平台构建的事情,发现我们真的走得很远。因为是写自己的感受,就不表扬其他同学了,要不然写一本书都可以啦。

二、这不是我一个人的工作,只是努力使它变得完美

第二个项目也带有我自己的强烈特色,我们一直被业务压得很紧。但是对于引擎层研发来说,团队成员也有自己的诉求,而且,系统要逐步完善和改进。在5K+项目完成后,我们依赖的一个重要模块开始频繁出现问题,随着团队间沟通的深入,我们发现对方团队的不稳定和发展方向不确定导致这个模块未来风险非常高。

我们首先想到的是部署一套新的作为过渡。在过渡阶段,为了完成业务的同时来做这件事,我把团队两位同学的一部分业务工作承接过来,腾出人力开始做这件事。两位同学远赴杭州,出差一个月,把平台基本接过来,保障了我们业务的平稳运行。

随后,我们调研后果断抛弃了这个模块的原有实现,调集团队的技术力量重新规划设计新的模块,除了替换,更重要的是为了发展。这一步走出后发现后面很多东西都活了,数据服务开始作为一个重要的点慢慢从整个平台浮现出来,与数据团队产生更深度的互动,进而随着原数据服务的不稳定,催生了新的数据服务平台。

这不是我一个人的工作,我只是努力使它变得完美。当初万分纠结,每一步都步步惊心,现在相信每个参与这个项目的同学,心里都是美好的回忆。而且,我们不仅通过这个项目成就了自己,更成就了兄弟团队,成就了御膳房的发展。说大了。

13467292-2e86645138ac626b

三、技术挑战是猎物,是机会,是战功

在这三年里,我不认为自己遇到了很大的技术挑战,很多事情提前想到,组织技术专家提前讨论,当和团队在一起的时候,技术挑战是猎物,是机会,是战功。

举一个简单的例子来说明我做一个项目的过程,例如:我们要实现一个限流的服务,就是允许一个租户的QPS最高多少。首先需要界定问题的边界,包括:要不要考虑网络层攻击(可能被其他模块处理掉)、未来一段时间业务的规模,系统稳定性、架构扩展性等。

这些问题确定后,会有一系列的技术方案成为技术选型,那么如何判断采用什么技术方案,当时不是最新最酷的最好的,要考虑将来部署环境,上下游环境。最重要的这是一个分布式需求。简单来说,N台服务器共同维护一个QPS值,这后面的分布式理论,朴素来说就是CAP,在CAP三者不能同时满足的情况下,应该降低那个并保证业务的目标。

为此,我们参考分布式的BASE模型,降低了一致性的需求,采用分区和主体配额池结合的思路解决了大租户的流量控制,而针对长尾租户采用了另一套控制来保证精确限流。

同时考虑第三方模块和非关键模块挂掉或者降级中的应急预案,以及模块部分宕机或者机房断电导致的服务不可用,以及某些服务的单点问题等而设计完整的稳定性方案。当然,最后还要考虑扩展性方案,如果需求规模突然变大,但是整体是有边界的。

总结起来,整个项目要有明确的目标和阶段以及对应的关键指标,做到可观测、可评估、可扩展、可恢复、以及容易交付给其他人继续研发和维护。

我不认为自己做得很好,但是当逐步完善一个系统时,真的蛮快乐的。

四、我不认为做到35岁转管理是必要的

现在细想起来,在我的成长道路上,给我提供技术指导的大牛真的很少,更多的时候,我更喜欢向任何一个我遇到的人学习,我学习的目的不是超越别人,而是超越自己。

转岗到iDST团队后,我坐在iDST老大的旁边,有幸耳濡目染研发和管理达人的工作,受益匪浅。我一直觉得,程序员没有人能教会,要的是自己的钻研和用心的学习。包括我原来御膳房团队的同学和现在iDST的同学,在合作和交流中,总能发现那些令你眼前一亮的优点和闪光点,这如何不欣喜?

另外,我觉得保持持续的思考和以开放的态度与其他同学沟通非常重要,互通有无。我觉得我目前最大的技术优势可能还是在工程领域,主要是服务器后端研发以及数据平台建设这边,主要是思考和经验比较多。我会在理论和实践两个方面继续增强自己的能力。与此同时,我一直在储备自己在人工智能方面的知识。得益于我博士论文期间在信息检索方向的深入思考,我很早就发现了这个能让我着迷的领域。

这里稍微聊两句人工智能领域,虽然一些人说这里面也就是所谓的调参、特征工程、训练深度网络等。这些真的是门外汉才会这么说。真正里面需要的是理性的思维,解决这种没有明确的路径可寻的问题需要非常深入的思考、尝试,经历无数次失败可能有一点小收获,然后还要把这种小收获用最精准的数学语言阐述出来,为后续的研发铺平道路。

目前我刚刚读完NLP领域的一本综述——《统计自然语言处理》,正在重新构建自己的概率论和统计学的知识体系,尽量做到基本的概念信手拈来,然后找一个小的领域进行深入的思考和尝试。对于我来说,找一个点建立一个模型,改改参数出一篇论文的诱惑不大,我希望能够研究前人的研究成果,在理论深度有一定的突破。

在这个领域,那些谈35岁就转管理的程序员可能根本就无法明白。当遇到一个可以持续投入精力去钻研,并且越钻研觉得越难的事情的时候,对于我来说,何其幸运。更何况,我不认为做到35岁转管理是必要的。管理并不好做,很多人以为管理就是分配工作,技术人员都是心高气傲之辈,能力低的根本领导不了,只能领导能力更低的。而且真正的管理和写代码一样,也是一门学问,一门理论与实践相结合,需要边探索边实践的学问。人家让你领导,是把自己的发展托付到你的手里,所以是更重的责任。

13467292-18d1633466432edc

from 朋友虞老板拍摄,当我们吟诵春风不度玉门关的时候,玉门关其实是这个小土坑了。所以要辩证思考那些流传的话,比如35岁前必须转管理。

我主要利用上下班路上的时间来做机器学习的钻研,每天大概3个钟头左右,上班时间主要还是写业务代码,我热爱写码,调通一个功能的感觉真爽!

举个例子,《统计自然语言处理》,我用了将近一年的时间,在上班路上读完,在读到机器翻译模型的时候,深深的迷醉于那5个IBM工程师发明的模型。这些模型发明的过程,思考的过程,是我学习的对象。

最后想说的是,在阿里,一样经历繁华,经历迷茫,经历失落甚至冷落,最重要的是守住自己的技术之心,与大家共勉。

Java高架构师、分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师视频免费学习加群:835638062 点击链接加入群聊【Java高级架构】:https://jq.qq.com/?_wv=1027&k=5S3kL3v

放弃FFT全频计算!在STM32F407上用DFT单点计算提速50%的优化技巧 本文详细介绍了在STM32F407上通过DFT单点计算实现比FFT快50%的优化技巧,特别适用于生物阻抗分析、振动监测等只需关注单一频点的嵌入式场景。通过预计算相位角、查表法和混合精度计算等策略,显著提升计算效率和内存利用率,同时保持高精度。 阅读详情

相关推荐

匈牙利算法解决指派问题清晰流程

匈牙利算法解决指派问题清晰流程 百度词条上,指派问题(Assignment problem)是这么定义的:在满足特定指派要求条件下,使指派方案总体效果最佳。如:有若干项工作需要分配给若干人(或部门)来完成;有若干项合同需要选择若干个投标者来承包:有若干班级需要安排在若干教室里上课等。   一、做减法(归约): 行归约:每行元素减去该行最小元素。 列归约:每行元素减去该行最小元素。

siss0siss的博客 6万+

阿里35岁Java程序员晋升无望,该何去何从,请网友给点建议

最近呢,就有一位35岁的阿里员工正在犹豫自己未来应该怎么办,他的级别是p7,工作这几年以来呢,只攒了200万现金,一套房一辆车。他已经35岁了,在阿里的晋升空间很小,不指望晋升,年年的绩效只有3.5,这是阿里的绩效平均水平。不过呢,有房有车,这两个最大的花销已经解决了,剩下的资产能做好投资,再加上自己一些工作收入,还是能够满足自己的生活需求的。互联网公司的员工,一直都被人认为是土豪般的存在,因为他们每年的年收入都不低,特别是以华为和BAT的员工,他们的年收入更是领先于其他互联网公司的员工。

the shy 1019

VCS HVP与验证计划planner:数字IC验证环境搭建与收敛实践

在数字IC验证中,VCS 是广泛使用的编译型仿真器,HVP 通常指面向硬件验证平台的高性能编译选项集,用于开启 SystemVerilog 类、随机约束和 NTB 等能力;planner 则指验证计划管理,核心是把功能点与测试用例、覆盖点建立映射。理解 VCS 先编译后仿真的原理,有助于优化增量编译、调试访问和覆盖率采集,提升回归收敛效率。规划驱动让激励不再散落,设计改版时能快速定位受影响用例,交接和覆盖率收敛更有依据。无论是 UVM 环境搭建、编译参数选择,还是验证计划表维护,都需要把工具选项与规划方法结

weixin_42543046的博客 342

阿里资深技术岗被裁员,混到35岁真的只能坐以待毙了吗?

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。一言不合就跳槽,大多数情况越不如前:新行业、新公司、新人、新环境,动辄6个月的试用期、KPI考核、末尾淘汰制,让你每天战战兢兢,日夜加班,疲惫不堪。

喜欢Python编程的程序员柚柚呀 1454

KEGG两类报错--①No gene can be mapped--②URL ‘https://rest.kegg.jp/link/hsa/pathway‘…

版本问题,重新安装一下clusterProfiler包。网络问题,可以等待之后再试一下(试过不是)(以上可以排除基因不存在的错误因素)

weixin_57699783的博客 2万+

pi-star图形界面安装指南

pi-star图形界面安装指南,MMDVM热点安装,树莓派3B+热点

blueisman的专栏 1912

Android:年过35岁的程序员还有出路吗?面试了一个-46-岁程序员后,我总结了这几点---,阿里P7大佬手把手教你

之前的一次面试,人事推给了我一份简历,职位是算法工程师,年龄是 46 岁,我揉了揉眼睛后再看看,确实是 46 岁。抱着忐忑的心,我电话面试一番后,还是不觉得他和我们的团队很适合。人都会有同理心,尤其是这么大岁数的程序员还是为了生计来找工作,心还是会隐隐触痛。年龄是多数程序员的天敌,之前没有概念因为生活中样本较少,现在来了一个鲜明的例子,并且还需要自己亲手关闭一扇门,总会有一个世道轮回的后怕。写这篇文章的目的,是以这件事作为一面镜子,让我自己好好思考一下,我自己的前途和出路。面试细节学历亮眼。

2401_84149875的博客 534

混合整数规划(MIP)在资源优化中的实战应用

本文深入探讨了混合整数规划(MIP)在资源优化中的实战应用,从菜市场采购到工厂调度,再到物流配送和钢铁厂切割问题。通过分支定界法和割平面法等技术,MIP能够有效解决包含整数和连续变量的复杂优化问题,提升企业运营效率。文章还介绍了现代求解器的优化策略和实际项目中的避坑指南,帮助读者更好地应用MIP技术。

weixin_30500105的博客 91

35+程序员还在死磕代码?别傻了!这18个转行方向,总有一个适合你!

中国互联网行业普遍存在的35岁程序员困境,本质上是行业短命周期与新人不断涌入的双重挤压。相比医生等越老越吃香的职业,程序员缺乏制度保障。面对这一现状,程序员必须提前规划职业转型路径。文章最后还提供了AI大模型学习路径和资源包,为程序员提供新的技术发展方向。

2401_85375151的博客 2450

Julia Ann老司机管理系统

https://content.badgirlsusa.com/Julia_Ann-Sexy_Julia_Ann_Fucks_A_Lil_Elf's_Big_Cock_/Julia-Ann-Naughty-America-%E6%80%A7%E6%84%9F%E7%9A%84%E8%A3%98%E8%8E%89%E5%A9%AD%E5%AE%89%E4%BA%82%E6%90%9E-lil-%E7%B2%BE%E9%9D%88%E7%9A%84%E5%A4%A7%E5%85%AC%E9%9B%9E-2020

www_oracle_com的博客 22万+

游戏大厂如何解析引擎技术

本文系统解析了游戏大厂如何评估和定制游戏引擎。游戏引擎作为游戏开发的核心基础,大厂会从性能、跨平台支持、渲染能力、网络模块等8个维度进行技术解析,通过文档查勘、源码阅读、Demo测试等7个步骤深度评估。解析后通常有三种决策:直接使用、深度定制或自研重构。文章以腾讯、网易、米哈游等为例,展示了不同厂商的引擎定制策略,并分析了技术解析面临的挑战和未来趋势。最终指出,体系化的引擎技术解析是打造高质量游戏的关键,需要持续的技术投入和团队协作。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 535

阿里传奇工程师多隆的程序世界

阿里妹导读:写代码写到入定,是一种什么样的体验?11月29日(本周三),《阿里技术人纪录片系列》将带大家走进大神多隆的代码世界。在此之前,我们先来重温一篇关于多隆的旧文,来自《淘宝技术这十年》(子柳编著),作者为阿里资深技术专家叔度。 多隆是淘宝的创始人之一,也是淘宝的第一个程序员,他奠定了诸多淘宝重大软件项目的基础。有人说他是淘宝的“扫地僧”,有人说他是“神”。在淘宝,他做到了既懂C/

阿里技术 4万+

Cesium雷达追踪追踪(圆锥体效果)

【代码】Cesium雷达追踪追踪(圆锥体效果)

God's asylum的博客 2931

阿里巴巴测试岗面试记:二面被按地上血虐,所幸Offer已到手...

最近,有一个名叫小李的测试工程师,在阿里巴巴面试中,经历了一场令人崩溃的二面。在面试过程中,他被按地上血虐,但幸运的是,最终还是拿到了Offer。据小李介绍,这场面试是他在阿里巴巴的第二次面试,第一次面试已经通过了初试,并且已经进行过了一次技术面试。这次面试由一位资深测试工程师和一位架构师共同面试。一开始,面试官向小李询问了一些基本的测试知识和工作经验,小李也顺利地回答了问题。然而,很快面试官就开始提出一些比较难以应对的问题,涉及到测试的深层次知识和分析能力。

apex_eixl的博客 626

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

阿里技术文档

2018-07-03 14:24 《不止代码》 如何快速成长为技术大牛?阿里资深技术专家的总结亮了 1 毕业 3 年,为何技术能力相差越来越大? 10 程序员吃的是青春饭?本质上取决于…… 15 技术变化那么快,程序员如何做到不被淘汰? 21 加班越久故障越多,如何跳出程序员的恶性循环? 32 如何在阿里技术面试中脱颖而出? 39 使用开源项目的正确姿势,血和泪的总结 48...

weixin_30652897的博客 706

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

程序员成长系列:从业务、技术到思维体系

整理部分本号发过的程序员成长方面的文章,供读者查阅。由于之前发布的内容多达数百篇,本次选择几十篇以做代表梳理。效率、如何提问、程序员的品格程序员当属工程师类别,而工程师的核心能力,在我看...

u013527895的博客 978

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

研究2

101城市大脑技术厉害了!阿里 iDST 三篇相关论文入选ACM MM https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&amp;mid=2247486172&amp;idx=2&amp;sn=1a7f69f2e034cc713832a36d1d90ace3&amp;chksm=e92937d3de5ebec5918f50534db495ea22...

yuyuxiadegudu的博客 5467

分布式技术追踪 2017年第四十七期

分布式系统实践 1.直击阿里双11神秘技术:PB级大规模文件分发系统“蜻蜓” https://mp.weixin.qq.com/s/J0O4jD0d4jCjU56wpEJu1w 摘要:2017天猫双11, 交易峰值32.5万/秒,支付峰值25.6万/秒,数据库处理峰值4200万次/秒,再次刷新了记录。阿里集团基础设施蜻蜓,在双11期间,对上万台服务器同时下发5GB的数据文件,让...

weixin_30249203的博客 132

DeepSeek V4迁移昇腾950PR:从CUDA到CANN的工程实践

大模型推理正从通用GPU加速转向专用AI芯片优化,其核心在于软硬协同的深度适配。理解CUDA与CANN的本质差异——前者强调线程级精细控制,后者依托AscendCL运行时实现计算图抽象——是迁移成功的前提。技术价值体现在性能、功耗与稳定性三重突破:昇腾950PR凭借Da Vinci 3.0架构和2.4TB/s HBM带宽,在128K长上下文场景下实现312ms P99延迟与62%功耗降幅;而DynamicKV Cache、算子熔合、场景化Profile等工程手段,则将硬件潜力转化为真实业务收益。该实践已规模

weixin_34087307的博客 453

Python自动化副业实战:用Flask从脚本到月入2万的轻量SaaS

Python自动化是提升个人工程效能与副业变现的核心能力,其本质是将重复性业务逻辑封装为可调度、可交付的服务。Flask凭借极简架构、低内存占用和热重载友好特性,成为中小规模自动化项目的首选Web框架,尤其适合无运维团队的独立开发者。相比Django的重型生态或FastAPI的异步复杂度,Flask在低QPS场景下展现出更优的开发效率与部署确定性。结合JSON文件存储、线程级任务调度、JWT无状态鉴权等轻量化实践,开发者能以最小技术冗余快速验证真实需求。本文聚焦‘周末项目→稳定副业’的完整路径,涵盖需求抽象

weixin_30706691的博客 413
上一篇: 深入剖析Redis - Redis集群模式搭建与原理详解
下一篇: 27岁程序员职业生涯的“中年危机”
普通网友
博客等级 码龄8年 55粉丝 197原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值