7年,从“游戏少年”到大厂技术总监的逆袭之路

医学图像处理(一)使用U-Net进行MRI的肝脏分割 医学图像处理(一)使用U-Net进行MRI的肝脏分割数据集搜集训练集和测试集划分问题一: 测试集不包括GroundTruth问题二:T1和T2的数据能一起训练吗?问题三: T1的图像在文件夹中分成了InPhase和OutPhase,这个有什么区别?分离出肝脏将dicom文件转换为png格式数据增强U-net网络搭建自定义DatasetMain.py实验结果总结 图像分割小白一枚,之前接到一个MRI图像肝脏分割的任务。对于医学图像分割,第一想到的就是Unet. Unet在2015的MICCAI上首次提出,在医 阅读详情

成长&认知 丨 作者 / 袁吴范
这是pointers公众号分享的第21篇原创文章

写了20篇原创文章,一直没有正式的介绍过自己,一方面粉丝太少,另一方面确实没有时间写。

算一算在杭州已经有11个年头了。算是一个彻头彻尾的杭漂,现在已经在杭州安家立业。
从大学四年游戏少年,到刚毕业时的处处碰壁,再到大厂的技术总监,这一路走来有太多的心酸。

希望大家看过我的经历,能够给到北漂、深漂和杭漂们一些鼓励。



01无知

我是浙江人,出生在浙北的一个普通农村家庭,按照我老婆的话说是自带土气,这恐怕是农村人与生俱来的气质了吧。

从小家里条件不是很好,在我模糊的印象中,冬天家里总是断电,父亲就会肩扛竹竿,在竹林里寻找断开的电线,再用竹竿把两头断线接上。

当时年小的我还不知道这个小小操作是如此的危险,就是觉得父亲总是什么都能搞定。

应该是“开窍”晚的原因吧,直到一年级前,还不会从1数到10,别人家的娃已经可以加减乘除了。

在小学期间,我的成绩表现的可以用糟糕来形容。

小学的成绩一直排名垫底,行动表现上,一直后知后觉,呆头呆脑,用我妈的话说就是傻傻的。

从那个时候开始就被我妈一直用别人家娃来激励我。

你看别人芳芳又拿三好学生了

你看别人优优又考试第一名了。

不过还好,我有一点还可以的,就是体育。

在四年级的时候还获得镇上同年级200米和50米短跑比赛的第一名。

为此学校的领导还在国旗前给我了奖状。

这个奖状也就成为我小学期间唯一的奖状,有点心酸。

所以我一直认为在小学期间,体育是最重要的。

一般体育好的学生,文化课都不会差,就算现在差,以后也会追上来的。


02懵懂

初中的时候,进入到了镇上的中心学校,这所学校在县里应该算是最差的那种了吧。

在学校里,我第一次看到了电脑,当时看这个屁股大大的东西,看着很高科技感觉。

当时并不知道,这还只是个显示器,主机是在桌子下面的。

初一开始有了电脑课,当时的电脑课的机房是这样的。

用的已经是xp系统了。

01年xp系统发布,03年我初一,现在想想当时用的还是挺先进的。

最开始学习的就是word,然后还学了flash制作动画,我也不知道学校为什么让学这个。

之前对电脑只是存在脑海中的一个静态画面,当我第一次看到电脑能够通过笨拙的鼠标控制,我被震撼了,还可以这样用?

我就被这个样子看起来怪怪的东西,深深的吸引了。

快速发展20年的互联网,让人感到唏嘘,新技术层出不穷,微软还是那么的能打,从pc时代到移动互联时代,强者恒强,office套件已经家喻户晓,而flash逐渐快被淘汰。

扯远了,话题拉回来。

在当时,电脑课是我最喜欢的课程,因为我学的很快,每次课堂作业,都是第一个完成。

就因为接受的比较快,还经常被老师在课堂上,点名表扬。

这在其他课上还不可能存在的。不被老师抓到办公室批评就不错了。

在那时,就是比较简单的想法,下定决心,一定要熟练的操作电脑。

就因为对电脑的热爱,心中的火苗彻底被点燃,学会了一样对我之后的发展影响极大的技能,就是盲打字的习惯。

高中

进入高中后,学习成绩突飞猛进,一直在前十的状态,在县里的排名一直在前100名。按照以前的经验,前60名,就可以进入浙大了。所以高中阶段,一直是把浙大当做我的大学目标。

可是高考成绩彻底将我的梦击碎,我的成绩只高出一本线20分。

那段时间,情绪一直比较低迷,感觉世界都要崩塌,又来经过家人、朋友和老师的辅导下,渐渐缓了过来。

填报志愿时候,没有选择离开浙江,还是填报了杭州的一所双非学校。

浙江只有一所985、211高校,大家都懂了吧,浙江的学生难啊。

大学

进入大学之后,下定决定刻苦学习,发誓要考上浙大研究生,去实现自己未完成的梦。

可我的毅力弱的性格,再一次击败了我。

整个大学四年,都沉迷在dota这款游戏当中。就是下图这个,大家好好看看,是不是很熟悉?

最疯狂的一次,在天梯平台上,为了冲分数,从早上的八点,一直打到第二天的晚上的八点。整整36个小时,除了上厕所没有离开过凳子。

整个大学生涯中,除了必须要签到的课,其他的基本没有参加过。不过还好,我没有挂科,我总是能最后时间内,完成临时抱佛脚,考试通过。顺利完成了毕业。

心心念念的考研,去浙大上学,在颓废中,逐渐的放弃了。


03初露锋芒

我的人生转折点,是在毕业找工作的那段时间。

找了好几个月,都是产线普工的岗位,或者是需要经常出差的技术支持岗,又或者是销售岗位。

根本不是我想要做的研发岗。

在一次和我妈妈电话的过程中,我哭了。这是我大学四年来第一次流泪。

男儿有泪不轻弹啊

感谢残酷而又现实的社会,让我感受到了可能会饿死的危机感和城市中无法生存的绝望感。

这一下子就把我迷迷糊糊的脑子,彻底打醒了。

心灰意冷的我,我静下心想了一个星期,下定决心,给自己定了一个小目标**:一周之内把常见的面试题全部刷了一遍,先找一个小厂,干几年学到技术之后,最终跳槽去大厂。**

为了实现这个目标,我近乎疯狂的学习,每天睡4个小时。

终于功夫不负有心人,有一家新成立的创业公司,面试期间,我表现出的基础能力得到了面试官的认可,顺利拿到了研发岗的offer。不知道那天晚上多开心,立即给我妈打电话报喜。

那家创业公司是要开发一款智能机器人,带队的是浙大航天学院的一个副教授,擅长机器视觉。

这是我实现目标过程中的选择,我到现在都觉得是一个正确的选择,也感谢当时给我机会。

这里的氛围是科研氛围,感觉能够学到东西(虽然工资很低,但是当时没有考虑薪资方面,有自知之明,管饱就行)。

接下来就是没日没夜的看书,弥补自己的大学欠下的债。

晚上9点下班,骑车回家,洗漱好,10点钟看书到12点睡觉。

早上6点起床,看书到9点,骑车上班。

甚至不放过吃饭时间——边吃饭边看书,这样的状态一直持续了2年。

这是我毕业后,工作前期这个阶段,我觉得需要做到3点:

1.深蹲&积累

这个阶段,认知收益和认知成本的比值非常小。

好在我自己深知能力积累的“非线性增长”规律,所以也并没有过于气馁和急躁,一直积攒着能量。

我觉得,造成我们和优秀同事之间的能力巨大鸿沟的决定性因素其实是“知识能力”积累到一定程度带来的自身增值速度。

只有深蹲,积攒强大的能量,在某个时刻能瞬间打通了任督二脉,厚积薄发,职场中一路飙升。

2.整合&建立认知链接

我认识到了积累的重要性了。

但是对不起,即便是日以继夜的积累,也可能达不到能力提升的目的。

最好还差一步,就是需要系统性思维。

通过长期积累的知识并没有纳入到你自己的知识体系中去,他们还只是单纯的孤立的知识点。

我们的记忆本质就是记忆逻辑,也就是记忆关联。

我们需要将新知识和已有的认知进行连接。

这样才能达到融会贯通,才能达到信手拈来的程度。

那如何培养自己的系统思维呢?

我自己的学习方式是每当我学习到一个全新知识的时候,我会去思考这个知识点与我脑中现有的知识系统有何联系。然后再去想,我该去如何使用这些知识。

打一个比方。

我学习数据结构的时候,其中有链表,二叉树等等,这时候你就要去想,这些数据结构是怎么使用的?在你的工作中哪些地方可以用到。跟你脑中的已经学习到的例如Linux内核有关系吗?是不是Linux内核中也使用这些数据结构?内核中为什么要这样使用的?

通过这一番深度思考之后,是不是对知识的理解更加深刻,也就真正成为了我自己的东西了。

仔细想想为什么常常我们道理都明白,却很难做到?

其实很多时候我们都犯了一个巨大的错误,那就是误把“知道”当作“明白”或者“感悟”。

想知道,道理很容易,那些祖训大家都耳熟能详,但往往真正明白并内化到自己的骨子里却需要付出不少的精力。

再看极少数身边优秀的人,在年轻时就能把这些有价值的道理真正内化到了自己的行动上,不得不说这才是他们身上一直被人们忽略的最大的天赋。

3.起跳&突破

不要满足于当前的得过且过状态,你身边的同事们正在暗暗较劲,拼劲学习,努力积累经验。

此时将你们进行横向对比,确实差别不大。正所谓逆水行舟不进则退,倘若再过几年呢?

在认知收益和认知成本比值不断增大的情况下,在温水煮青蛙的状态下,在你还没有意识到时,对方能力的已经把你甩的老远。

此时,对方已经开始崭露头角,领导的资源就慢慢向他倾斜。那时,你该如何是好呢?

不要在本该奋斗的年纪选择安逸,那样以后的路越来越难走。天底下没有速成的秘诀,没有捷径可走。

时刻保持危机感,设立高标准,严格要求自己。

你要相信,能力是存在跃升,只是时间未到,多点耐心。

你要相信,认知收益和成本会急剧的增大,要多积累。

你要对自己的认知进行整合,建立认知链接,打造自己的知识体系。


04披荆斩棘

在这小厂的2年时间内,我就像井底的青蛙,虽然练就了“一身武艺”,但并不知道外面大厂的流程制度规范,技术能力到底是怎样的情况。

所以,我决定跳出这个小圈子,去外面看一看、闯一闯。

后来大家也知道了,我进入了海康。

1.赢得好印象

进入海康,第一件事情就是,赢得好印象。怎么做呢?

刚来第一个月里,一般情况下就是熟悉团队氛围和公司制度、文化的阶段,而我发现代码中的兼容性、扩展性都比较差,而且耦合特别大。

就强制要求自己每天早上非常早的就来公司,晚上几乎11、12点下班,在一个月时间内就输出了一份软件架构方案,递到了领导的手上。

最后虽然方案还是有漏洞,但是大的问题没有,在第二年就慢慢切换使用我设计的架构。

通过这件事情,我获得了什么?

在领导、同事心里:“能力强”,“有拼劲”,“执行力强”的标签,就一直伴随着我。

获取正面的标签,这还不够,还需要做一件事情,持续增加曝光。

好印象=好的第一印象+持续增加曝光

当时作为新员工进来,一直非常的拼,在别人的印象中就是有拼劲,同时能力非常强,而且这种状态一直保持了5年,这就是持续地曝光。

凡是都是有因果的,没有无缘无故的成功,只是很多的“因”由于自身的认知局限而被忽视了。

这个阶段,我已经完成了领导心中的好印象。

我要成功真正的管理者,必须要完成管理跃升。

2.完成管理跃升

这次的跃升,是我真正叩开了管理的大门。

虽然只是叩开了大门,但这对我来说,是整个能力系统的改变。

当我还是个人贡献者时,我的能力是这样的:

发现问题、解决问题、总结和反思

而我是基层管理者时,我的能力要求,完全发生了变化:

自己的工作发生了彻底的变化,要求变成了协调、组织、反馈。

所以下面这4个升级一定要做到。

第一个升级,叫责任升级

在个人贡献者的时候,我是对任务负责,领导交给我一件事情,把任务的细节和deadline告诉我。

我只需要在deadline之前,把这件事干好,就OK了。

例如:领导让我开发一个界面,开发一个测试工具等等。

而现在我需要对这个事情的结果负责。

也就是,同样是一样事情,不是由我亲自去干,而是由我分配任务给到下属,教练指导下属去完成这个任务,

这个任务的结果好坏都是由我自己来承担。

切记中间多坎坷,作为基层管理者,都需要想方设法的达成目标,因为这是你的责任。

第二个升级,叫做行动升级

现在从单打独斗,成为了一个团队的管理者。

作为一个新经理,总是会犯的一个错误,就是“总是觉得别人做的不好,自己亲自来”。

这个想法是非常愚蠢的。

一个人能力再强,也干不过一个有组织的团队。

例如:有一次一个系统崩溃问题,我并没有亲自去解决,而是安排好计划,定好合适的责任人,下达任务命令。

记住,千万不要替代他们解决问题。

第三个升级,叫做协作升级

在个人贡献者时,我的工作关系,比较简单,组内同事和领导。

当成为管理者时,工作关系,会变得复杂,领导、下属、兄弟同事、外部客户等。

这时候的协作方式就需要发生大的变化,我不仅仅需要考虑下属和领导,还需要考虑其他外部关系。

在这期间我组织完成了一件重大的技术方案落地的项目,项目人员涉及到全公司各个领域,公共项目人员在100+人。关系变得复杂,工作的协作方式也需要升级。

从单纯的组内同事之间的技术协作,升级为组间的配合协作和技术协作的混合模式。

从封闭的协作范围,升级为开发的协作范围。

关注的不仅仅是组内的工作,还需要考虑其他部门的工作情况。

正如数学概念中的面升级到立体三维空间,协作方式也需要进行全新的升级。

第四个升级,叫做成就升级

我从个人成就,升级到团队成就。

通过我的管理,我的下属持续成长,团队能力越来越强,这就是团队成就。

作为基层管理者,只是单单做到个人成就,不注重成就下属,我们的团队是很难做强的。

一个团队的不强,想想你还能晋升吗?

作为一个团队的老大,需要有成就下属的胸怀,才能走的更远。

就这样,3年时间,我完成了责任升级,行动升级,协作升级,成就升级,这个阶段也算真正的一名管理者了。

最终,事实也证明了,3年后,也就是2018年,我成功晋升为技术经理,带领着10+人的团队。

05笑傲江湖

2018年至2020年,这段时间是我的另一次的自我进化。

我称之为领导跃升。

我从技术经理晋升到了技术总监。

这次跃升,是从基层管理者,跃升到团队的领导者。

成为领导者需要从局部把控,变为对全局的掌握,领导团队运筹帷幄,披荆斩棘,以弱胜强,最终走向胜利。

我是从下面2个升级,完成了这个跃升。

第一个就是战略升级。

战略相对于战术,而战术只为实现战略的手段之一,基层管理者做的就是战术。

争一时之长短,用战术就可以达到!如果是“争一世之雌雄”,就需要从全局出发去规划,这就是战略!

什么意思?

运用到企业管理上就是要”做正确的事情“。

而团队领导者,最重要的职责,是制定部门的战略目标、组织文化建设。

要完成什么目标,怎么和供应商合作?规划未来3到5年做什么。

团队需要怎样的组织架构,需要怎样的文化氛围等等。

第二个就是影响力升级

影响力是用一种别人所乐于接受的方式,改变他人的思想和行动的能力。

影响力,是一个非常重要的武器。

我通过影响力,建立了部门内的文化价值观,愿景,并且以身作则,激励团队,可以产生巨大的凝聚力。

我们的团队正在破釜沉舟,越战越勇,期待我们部门分拆,独立上市的一天到来。


06最后

我们职场生涯就是一次次对自己能力重构的过程,保持持续突破。

当你学会了走路,就要想学着跑步,当你学会了跑步,就要想着到水里,学着游泳。

一直在不断的超越自我的路上,终生学习。

我是袁吴范,帮助你提升认知和能力提升。


推荐阅读(干货)

面试过200人的经验,都在这里了

程序员成为高级管理者的三次跃升

技术总监7年总结,如何进行正确的沟通?


从业7年。从软件开发、高级软件开发、技术经理再到技术总监,分享职业发展、技术管理、职场晋升、技术成长等个人多年经验和心得。一起成长!有问题可以加我微信交流:pointersss,也可以关注我公众号pointers

多年经验分享,实属不易,感谢支持!

基于STM32L4XX、HAL库的AD7124-8BCPZ模数转换器ADC驱动程序设计 / 公式: Voltage = (adc_value / (2^23 - 1)) * Vref。// 模式控制位[7:5]=000 (连续转换模式)// 3.2 配置通道0,使其使用AIN0(+)和AIN1(-),并关联到配置0和滤波器0。= 0x14) { // AD7124-8的ID是0x14。// 双极性操作,缓冲AINP/AINN。 阅读详情

相关推荐

QGroundControl实现多机控制

前言 作为西安电子科技大学的本科生一名,目前在研究关于无人机导航规划与轨迹控制方面。 目前在跟导师做关于雷达无人机的一个项目,在这里记录一下关于QGC地面站实现多机控制的一些方法。 某些地方写的可能不是很完善,欢迎大家补充。 目前该文章还未写完,后期本人会继续编写 多机控制原理 多机地面站支持TCP,UDP和串口等三种连接方式,首先我们需要对这两种连接方式抽象出一个基类LinkInterface,提供两个虚函数分别对应于数据接受和发送处理,针对于不同的连接方式实现TCP,UDP和串口连接相对应的子类TCPL

Phillweston的博客 8428

读海康威视袁总监分享<<技术总监7年总结,如何进行正确的沟通?>>引发的思考

本篇推文共计1685个字,阅读时间约3分钟。周末无意间看到海康威视的技术总监袁吴范袁总分享了一篇文章<<技术总监7年总结,如何进行正确的沟通?>>,之所以知道袁总...

木野归郎 1568

数字IC后端PPA优化实战:Innovus中Timing一致性策略与Module Region布局技巧

本文深入探讨了数字IC后端设计中PPA优化的核心挑战,重点解析了Innovus与PrimeTime之间Timing不一致的根本原因。通过实战案例,详细介绍了在Innovus中设置Timing Margin、Derate以及RC Scale Factor等关键策略,以校准时序视图。同时,文章分享了利用Module Region进行物理布局规划的技巧,将关键模块约束在最优区域,并结合Group Path等进阶方法,有效提升时序收敛效率与PPA结果的可预测性。

f9g0h的博客 2686

我从普通程序员到成为大厂总监,就靠这三个绝招!

见字如面,我是军哥!我从一名小厂的普通程序员到成为一名大厂总监,这其中花了 10 年,另外我朋友圈技术总监/CTO云集,通过和他们沟通和交流,我提炼了如下三招,都是经验和踩坑所得,非常有参考价值~这三招环环相扣,请注意循序渐进哈。1、思维方式不同程序员的思考方式基本靠经验或者自己见过的,也就是常见的归纳法,简称先看见再相信,所以他们大多数很固执,而大佬对于不熟悉的领域或者...

chengjun_java的专栏 534

AD9361 官方例程

文章目录一、官方资料1.1 介绍1.2 下载 和 使用1.3 相关资料二、步骤2.1 在Vivado中构建HDL2.2 在SDK中构建No- OS总结 一、官方资料 1.1 介绍 HDL参考设计介绍:AD9361 HDL Reference Designs 无操作系统介绍:AD9361 No-OS Software 1.2 下载 和 使用 HDL下载:Download HDL 在Vivado中构建HDL:Building HDL No-OS下载:Download No-OS 1.3 相关资料 AD

weixin_44630490的博客 3万+

地瓜派RDK X5部署YOLOv11n避坑指南:从Softmax瓶颈到BPU加速的实战解析

本文详细解析了在地瓜派RDK X5开发板上部署YOLOv11n模型时,从性能暴跌到成功优化的全过程。核心在于通过配置`node_info`将模型中的Softmax算子强制在BPU上以int16精度运行,解决了因算子被分配到CPU导致的严重性能瓶颈。实战部署后,模型推理延迟从126ms降至10.8ms,FPS从7.9提升至92.3,实现了显著的性能优化。

beta5的博客 865

1 年原创 150+ 篇,这位大厂技术总监必须推荐!

见字如面,我是军哥,感谢「老K」的推荐。我先做个自我介绍,我叫程军,有 15 年互联网行业经验,从一名普通的程序员干到架构师,然后到大厂技术总监,曾任前饿了么产品技术总监,贝壳找房总监,最...

技术领导力 737

C# + YOLO 实时摄像头检测:Emgu CV + ONNX Runtime,30FPS+ 流畅运行

很多教程只给“单张图片推理”代码,一上摄像头就卡成 PPT(<5 FPS)。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 214

软技能:人人皆可成为卓越的领导者

最近看到海康威视的技术总监袁吴范袁总分享了一篇文章<<如何做个优秀的经理>>,袁总目前和我在同一个行业,他也是我自媒体分享圈子里的朋友,他写的文章如下:如何做个优...

Bruce.yang的嵌入式之旅 1072

YOLOv8训练流程-原理解析[目标检测理论篇]

本篇文章主要介绍了YOLOv8训练的流程,主要介绍了Task Aligned Assigner正负样本匹配策略以及YOLOv8的损失计算。

ice 4516

【AI大模型】角色设定:给模型定身份的高效使用方法

摘要: AI大模型角色设定(RolePrompting)是提示词工程的核心优化技巧,通过赋予模型特定职业、领域和风格约束,显著提升输出专业度与适配性。文章系统拆解了角色设定的原理、万能公式(领域+身份+技能+风格+场景)、三级分层写法(基础/进阶/专家),并提供10类高频场景的模板。通过无角色与有角色输出的对比实验(Python代码量化验证),证明角色设定可使模型综合得分提升35%以上,尤其优化场景适配度与风格统一性。该技巧作为高阶提示词(如CoT、Few-Shot)的前置模块,能以零成本实现AI输出的专业

unber的博客 41

计算机学生应不应该考研?附上袁哥的考研经历

有粉丝问我,他现在大二,一直在纠结,要不要考研。每年考研的人数都在上升,可想而知,考研的竞争也会越来越大。今天有必要跟大家谈一谈我对考研的看法。先来看下我的团队情况。我目前带领了一个3...

互扯程序的博客 833

《嵌入式-STM32开发指南》第三部分 外设篇 - 第2章 温度传感器DS18B20

2.1 理论分析 2.1.1概述 DS18B20 是 DALLAS 最新单线数字温度传感器,新的"一线器件"体积更小、适用电压更宽、更经济。Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 "一线总线"接口的温度传感器。 DS18B20采用的单总线协议,也就是只需占用主机一个I/O口,无需其他外围电路,直接将环境温度转换为数字信号,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。另外,以"一线总线"的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量

不问归期的博客 8303

大模型时代逆袭指南:AI高薪岗位全攻略,零基础入门必藏!

提到AI行业薪资,别再局限于“千万年薪只属于行业大佬”的固有印象——2025年的AI人才市场,早已进入“高薪常态化,优质岗位遭疯抢”的新阶段。脉脉最新发布的《2025年AI人才流动报告》,用一组组数据揭开了市场的火爆真相

2401_85390073的博客 1238

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【深度收藏】大模型时代如何逆袭:AI高薪岗位全攻略与零基础入门指南

【深度收藏】大模型时代如何逆袭:AI高薪岗位全攻略与零基础入门指南

youmaob的博客 1004

深度学习工具包 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")

袁总,你为什么这么努力?

成长&认知 丨 作者 / 袁吴范 这是pointers公众号分享的第23篇原创文章 最近1个多月,我写了很多关于技术人认知提升和职业成长的文章。 经常会收到粉丝发来私信: “袁哥,你这么厉害了,为啥还这么勤的更新文章?” “袁哥,看到你这么努力成长的经历,受到了鼓舞。” “袁哥,我也要像你一样,努力拼搏。” 我自认为是一个比较勤奋的人,主要因为我想变得更加优秀。 那什么样的人才算是真正的优秀呢? 至今没有人说的明白。 每个人对优秀的定义都不一样。 就好像“一千个人心中有一千个哈姆雷特”。 我的..

pointersss的博客 329

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

2021年,让你看透世界的8个底层逻辑

什么是底层逻辑?简单的说就是思考问题和解决问题的方法。思维层次越高,你的价值就越高;底层逻辑越坚固,解决问题的能力越强,发展机会就越多,成就也就越大。一句话:他能让你能够1秒钟看透问题本...

zouhui1003it的专栏 1231

Java面试突围:7天重构知识体系斩获高薪Offer

在Java技术面试中,深入理解核心原理比泛泛而谈更能打动面试官。以JVM内存模型和并发编程为例,掌握GC调优实战和AQS底层机制等技术深度,往往成为面试成败的关键分水岭。系统设计能力则需兼顾技术方案选型与量化思维,例如设计短链系统时需平衡Base62编码效率与分布式ID生成策略。通过构建知识图谱、算法模板化和4S分析法等工程化训练方法,开发者可在短时间内显著提升面试表现。本文分享的七日突围计划,涵盖从HashMap扩容机制到Snowflake算法优化等高频考点,特别适合正在备战互联网大厂Java岗位的求职者

weixin_34292402的博客 1341

迷茫、焦虑,该不该跳槽,怎样才是跳槽的正确姿势?

▲点击上方"pointers"关注公众号成长&认知丨 作者/袁吴范这是pointers公众号分享的第23篇原创文章编者序:这篇文章之前发布过,为了让读者更...

互扯程序的博客 654

那些把公司当家的程序员,后来怎么样了?

成长&认知 丨 作者 / 袁吴范 这是pointers公众号的第26篇原创文章 家是什么? 家是渴了有水喝,饿了有饭吃,冷了有衣穿。 家是不管如何也会满心欢喜的期待着要回去的地方。 一句话:此心安处是吾家。 每个家庭都这么温馨吗? 不见得,至少在公司这个大家庭中,并不是这样。 给大家讲一个故事 你有一个温馨的家,家里每个人都各司其职,你的工作就是每天早上9到晚上9,一周6天,这样不停的熬出一锅热气腾腾的鸡汤。 因为汤是给家庭所有成员享用,所以爸妈要求你熬出的汤要鲜醇味美。 你最喜欢吃的是大饼,.

pointersss的博客 327
上一篇: 你和牛人到底差在哪里?
下一篇: 袁总,你为什么这么努力?
袁吴范
博客等级 码龄10年 31粉丝 30原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值