十年,我译过的10本书

淘宝十年产品事 阅读详情

 【引】4月23日是世界读书日,然而,在一个被小视频和直播充斥的环境中, 我已经很少在地铁上看到人捧书阅读了。 然而,对很多人而言,读书或许是最廉价的高贵,也可能是最好的出路。

个人觉得,译作的本质是“读一本好书,然后与别人分享”。读书可以是“不求甚解”,也可以是“半部论语治天下”,我喜欢的是“不懂笔墨不读书”。这里有两层意思,一个是批注笔记,一个是动手实践书中的内容。对于计算机领域的英文原著而言,笔记会有点多,曾经读了一本《Spark for python devleopers》,笔记记成了优快云上的一系列博客,这里是第一篇(https://tech1024.blog.youkuaiyun.com/article/details/51347416)。一边读书,一边实践,书读完了,如果再仔细整理校对的话, 或许会是一本译作。

幸运的是, 我参与翻译的第一本书竟然是华章的黑皮书《计算机网络问题与解决方案》,感谢福川的推荐,特别感谢出版社的关老师,给了我极大的支持。这本书很厚,英文约800多页,我的主要时间是每天地铁通勤的两个多小时,赶早班地铁可以有座,加上晚上周末,我和石头兄弟花了半年时间才译完。

收获也是巨大的, 原以为自己工作了20年,对计算机网络的理解还是不错的。但读了这本书,才觉得真正打通了自己的任督二脉,让自己有了真正的认知。例如,通信协议的精髓就在于8个字“组装、复用、纠错、流控”,大道至简。

个人认为, 这本书比《自顶向下》那一本强太多了,那本更像是教材,循规蹈矩。《计算机网络问题与解决方案》更多是面向工程师,如果从事过网络工程的话,肯定会感触极深。即便不是网络工程师,只从事网络编程的话,也会收获良多,更多可以参考《计算机网络的元认知、实践与未来》 一文。特别的,这是一本20年也不会过时的书!

那些年,比特币的兴起,使区块链变得异常火爆。很多同学嘲笑我没有发币也没有炒币,一些人因加密货币而财富自由,但更多人是被割了韭菜。但这都不影响我学习区块链的兴趣。石头兄弟投身于区块链创业,主持过IPFS 的主链上线。借石头兄弟的东风, 我们一起翻译了《区块链应用开发实战》一书。

在《Web3.0,区块链后花园的姹紫嫣红》一文中,描述了从区块链通往Web3的畅想。但多年过去了,人们仍然在质疑“除了发币,区块链还能做什么?”。从技术的视角来看,或许很多人不记得什么是ATM交换模式(最早的数据包交换之一)了,但是在MPLS中却藏着ATM的身影,所以,我觉得区块链不会成为历史中的尘埃。

2017年做小度音箱的时候,自己算是踏上了AI赛道,而且软硬件结合的产品形态调动了自己全栈的潜力。但是,百度的高手很多, 而我在会议中经常被他们所讨论的NLP黑话所困扰。ASR,TTS,VAD,Embedding,DNN,LSTM......,即使知道了这些词语的字面含义,也是知其然不知其所以然。于是,在出版社刘老师的帮助下,翻译了《基于混合方法的自然语言处理》。感谢刘老师,后来又和刘老师合作了多本书。

这本书不但帮助我理清了一些概念,更多是开阔了自己的视野。神经网络的强大毋庸置疑,但知识图谱的力量同样不应该被忽视。知识赋能的AI有着独特的魅力, 即使如今进入了大模型的时代, 依然如此。

后来离开了百度,那时候“具身智能”还没有多少人问津,自己做的机器狗demo 难逃实验室玩具的命运。其实,我当时想做导盲犬产品,基于DuerOS的导盲犬呀!

在百度工作的一段时间里,我作为DuerOS的首席布道师参与生态建设。于是,有出版社约稿, 写一本关于DuerOS的书。但由于PR等种种原因,无疾而终。作为自己对智能语音应用的一次回顾, 我参与翻译了《语音优先——智能语音技术驱动的交互界面设计与语音机器人设计》。

这是一本面向设计的手册,如果对智能语音应用感兴趣的话,这本书会有较大的参考价值,尤其是对AI 产品经理而言。语音优先,意味着在一些场景的边界内,语音作为主要的交互手段,甚至是唯一的手段。以此为出发点,引出了一系列的设计思想和技巧,具体可以参考《语音优先》智能语音技术驱动的交互界面设计与语音机器人设计(译者序)。尽管这本书是以亚马逊Alex 为例进行实践的, 对于其他的智能语音平台同样有效,例如百度的DuerOS开放平台,以及阿里和小米的平台。

很多人问过我资深程序员和架构师的区别,这是一个有趣的话题。我在《全栈的技术栈设想》一文中引出了架构的时空观。《持续架构实践》一书则把架构定义为一系列的决策,是偏时间维度的一种表达。书中提出了架构持续演进的6个原则,详见《不了解持续架构会落伍么?》。

《持续架构实践》一书的副标题是“敏捷和DevOps时代下的软件架构”,然而敏捷往往被滥用为不用设计,抄手就干,或者将一次次的Sprint视为加班的借口。而DevOps却被认为只是一套工具,组织、流程和文化反而会成为了工程效率的负担。架构不是万能的,更没有什么银蛋,持续架构的方法提供了一种有益的实践方式。

架构一词源自于建筑行业,软件工程同样借鉴了其他学科和各种工程领域的方式方法。精益管理是由丰田精益生产方式创生出的具有全新思维方式和行为方式的管理,在制造业取得了巨大的成功。精益实际上始于客户对产品或服务的使用,那么,软件工程中的核心之一是“IT服务交付”,精益思想和精益管理会给DevOps带来更有价值的实践,这正是《精益DevOps》一书的价值所在。


 精益思想是适于任何组织消除浪费、创造价值的最强有⼒⼯具。基于精益思想的DevOps能有效地减少交付摩擦和管理服务交付风险,应用OODA循环,可以通过管理不可预测性来提升组织的执行力,指挥官意图和相互信任对任务式指挥统一非常重要。通过Cynefin框架进行风险管理,生态系统、心智模型、认知偏差和信息流等都能帮助获得更好的态势感知。

DevOps 本身就是把精益思想应用到技术价值流中的结果,而技术价值流是把业务构想转化为向客户交付价值的、由技术驱动的服务所需要的流程。精益思想是DevOps乃至敏捷开发的魂魄,也是指引DevOps及敏捷开发落地的灯塔。

在软件工程领域,DevOps是“左移”运动的重要体现。DevOps是一种创新的软件开发和运维理念,它可以提高企业的交付速度、产品质量、降低运营成本,并提升团队的协同能力,对于企业的数字化转型和持续发展具有重要的意义。那么,如何将DevOps应用于基础设施呢?如何高效、智能地管理和配置基础设施成为了业界关注的焦点之一。

《基础设施即代码》(Infrastructure as Code,简称IaC)的理念应运而生,逐渐成为新一代基础设施管理的主流方式。IaC是一种将基础设施管理过程自动化的方法,通过使用编程语言来描述和管理基础设施资源,实现对基础设施的快速部署、配置和管理。

“模型驱动的DevOps”就是对这个新兴理念的全面解析。书中详细阐述了基础设施即代码的概念、原理、设计方法以及最佳实践,帮助读者深入理解基础设施即代码的本质和价值。同时,书中还通过大量的案例和实践经验,展示了如何运用基础设施即代码来提高企业生产力,改变数据走向,优化流量模式,还探讨了IaC在云原生、数字化转型等领域的应用。

AI的时代,数据已经成为推动商业和科学进步的关键要素之一。随着数据量的爆炸式增长,如何高效地分析和利用数据成为了各行各业迫切需要解决的问题。特别是在实时数据处理方面,传统的数据处理方法已经无法满足日益增长的需求,这就需要我们不断探索新的方法和技术来构建实时分析系统。

出版社的李老师将《实时分析实战》一书委托给我们,压力很大。这本书不仅在理论上探讨了实时分析系统的原理,还结合了大量的实际案例和经验分享,把枯燥的概念很好的与实际相结合,以一个线上披萨店为例详细地介绍了实时数据分析的应用场景和实现方法,虽然技术栈不是什么新东西,但是,企业级应用是否就应该采用成熟的技术呢?

《超密集无线网络》一书不是谁都能看的书,不可能也不应该是一本畅销书。这是一本学术专著,海东兄弟说, 只有工作5年以上的通信专业研究生才能看懂。感谢出版社赵老师耐心等待和专业指导,从着手阅读到翻译自审,从交叉评审到三审三校,从专家外审到最后出版面市,一共花了18个月的时间。

翻译这本书是为了纪念自己在北邮读书时的青葱岁月,详见《忆北邮同学生活及《超密集无线网络》译者序》一文。作为一个无线通信专业的北邮毕业生,30过去了,青春不再,记忆永存。

《架构现代化》是我参与翻译的第10本书。这本书希望解决的核心问题之一就是——如何对现存系统进行架构重构。 代码重构,我们已经习以为常,而架构重构则比代码重构复杂得多。气泡、缠绕榕(也可以叫做绞杀者)以及外观模式,掌握了这些技术就可以实现架构重构的屠龙术么?远非如此!

架构现代化的基石是对业务系统中独立价值流的识别,事件风暴帮助我们确定领域和子领域的边界,沃德利地图协助演进的方向。 康威定律一直生效,不论你是否意识到它存在。架构现代化一书的副标题是软件、战略和组织结构的社会化对齐, 本质上, 是架构方法在现代企业中的“左移”。关于架构现代化的更多介绍,可以参考本书的另一位译者陈斌老师的译者序。


《架构现代化》译者序

    在21世纪的第三个十年之交,我们共同见证了全球性的变革浪潮,以前所未有的力度和速度,深刻地重新塑造了人类社会的工作方式、生活模式和思维方法。首当其冲的是2020年全球大流行病,这场突如其来的危机迫使世界各地的企业和个人,不得不重新审视并拥抱远程工作的模式,彻底颠覆了传统工作环境的认知。紧接着,2022年生成式人工智能技术的爆炸性增长,不仅在技术领域引发了一场革命,更是跨越广泛行业,展现了重塑游戏规则的强大力量。

    这些变化意味着企业要与时俱进,全方位地进行企业的改造,以确保企业能适应市场变化并持续领先。所谓的架构现代化就是技术与业务深度融合,适应各种变化进行深刻的企业改造。通过引入新的思维模式、工作方法和技术手段,彻底改造落后的信息系统、工作流程、产品设计和组织结构等。重新企业赋予敏捷、创新、高效和竞争的能力,从而形成企业的差异化竞争优势。放眼世界,几乎所有的企业都在进行各种各样的架构现代化,移动化转型,数字化转型,智能化转型。简而言之,企业的架构现代化是企业保持竞争力的不可或缺的手段,不进则退。

    《架构现代化》一书不仅聚焦于技术革新本身,更深入探讨了企业在快速变化的环境中面临各种商业和社会方面的挑战与机遇。作者借助于其在全球不同国家和行业内累积的丰富实践经验,从战略规划、技术选型、架构设计,到团队建设、流程优化等多个维度,全方位指导企业实现架构现代化。书中详细讨论了如何利用沃德利地图、事件风暴、产品分类、领域划分、团队拓扑、松耦合软件架构、内部开发者平台、数据网格等先进工具和概念,加速产品创新和服务优化,同时有效管理变革,降低风险。作者还提供了基于亲身实践的应对策略、方法和实践。书中还鼓励企业以积极的态度面对挑战,将其视为成长与进步的机会。

    然而,架构现代化的实践远不止于技术层面的更新,它要求企业进行更深层次的文化和战略思维转变。成功的转型既需要高层领导的坚定支持,也离不开技术团队与业务团队之间的紧密合作及对现有流程的持续审视与优化。《架构现代化》强调,架构的现代化不仅关注于技术的更新迭代,更重视以人为本,促进团队协作与知识共享的企业文化建设。这种文化的建设能够激发团队成员的创新潜能,促进跨部门的合作交流,使企业能够更敏捷地响应市场的变化,有效解决客户问题,从而在激烈的市场竞争中占据有利地位。

    在技术日新月异的今天,我们面对的不仅是技术层面的挑战,更需要人文社会等多方面的适应。《架构现代化》深刻理解到,在这个巨变的时代,将技术进步与社会发展紧密结合,是确保企业持续成功和现代化转型成果稳定的关键。这种结合要求我们不仅要关注技术的革新和应用,更要深入理解和关注团队结构、文化氛围以及工作方式的现代化。没有这些社会人文要素的支持,技术架构的现代化就像是缺乏根基的建筑,难以长期稳定地发展。

    本书特别强调了领导力的重要性。在现代化的征途中,领导者不仅要具备前瞻性的视野,对技术变革有深刻的理解和掌握,更要能够引领组织文化的转变,建立起一个鼓励创新、支持学习、容错忍失的工作环境。这样的环境能够激发团队成员的创造力,促进跨部门之间的协作,使组织能够在不断变化的市场中迅速适应和响应。

    《架构现代化》不仅为企业领导者和技术决策者提供了一套完整的现代化转型框架,更是一本在数字化和智能化新时代引领企业前行的战略指南。它帮助读者理解在快速变化的环境中,如何利用技术的力量,同时结合人文关怀和社会责任,共同构建一个既能快速响应市场变化,又能持续发展的企业。

    《架构现代化》通过阐释技术与社会相结合的现代化策略,为那些寻求在变革中不仅生存而且繁荣的企业提供了宝贵的见解和灵感。无论是刚刚起步的初创企业,还是正在寻求转型的成熟企业,《架构现代化》都将成为你不可或缺的伙伴和指南。在变化的浪潮中,让我们携手共创未来,共同见证技术与社会融合带来的无限可能。


学无止境,对IT行业来说尤其如此!过去的10年,我精读并翻译了10本书。10年10本书,显得微不足道。 然而,日拱一卒,功不唐捐,第11本已经在路上了!

【参考资料与关联阅读】

社区新媒体创新模式:从零搭建可落地的运营系统与内容闭环 社区新媒体运营是依托互联网连接能力,对社区信息采集、分发与反馈闭环进行重构的运营体系。其核心原理在于以信任半径替代流量池,通过居民共创实现内容可持续生产,并借助服务入口形成可度量的转化闭环。技术价值体现在用轻量工具链跑通内容流水线,以服务预约率等指标反推内容质量。典型应用场景包括街道宣传、物业品牌运营与社区商业导流。社区新媒体创新模式探究,正是围绕账号矩阵配置、三圈层选题模型与信息员供稿机制,给出可复现的搭建路径与参数配置。 阅读详情

相关推荐

Rk3128投影仪救砖操作和固件分享思路

大家搞一条比较硬的东西,插入耳机口,就可以进入刷机模式了的,我的机器是这样的,大家也可以试试。(看不懂可以往下看)

MMX7088的博客 1万+

图书-旅行-十年徒步中国:《信念:十年徒步中国》

ylbtech-图书-旅行-十年徒步中国:《信念:十年徒步中国》 《十年徒步中国》是2012年中国地图出版社出版的图书,作者是雷殿生。该书记录了作者十年走遍中国的风雨路,并用地图逐步揭示作者十年徒步历程。 1.返回顶部 1、 书名:十年徒步中国作者:雷殿生ISBN:9787 5031 71390页数:320页定...

weixin_30685047的博客 1938

数学建模更新10(蒙特卡罗模拟)

蒙特卡罗模拟一.目录二.引例1:布丰投针实验1.投针步骤2.思路3. 历史实验者二.蒙特卡罗模拟概述1.定义2.提出3.原理4.讨论三.应用实例1.三门问题【1】问题【2】代码2.模拟排队问题【1】题目【2】引入参数【3】总结题目信息【4】过程可视化【5】一些推导公式【6】代码3.有约束的非线性规划问题【1】问题的分类【2】例子【3】推导过程【4】代码 一.目录 二.引例1:布丰投针实验 1.投针步骤 步骤: 1:取一张白纸,在上面画出许多条间距为a的平行线 2:去一根长度为l的针,随机的向纸张上投掷n次

沉晨尘宸的博客 3043

我的技术十年

十年一瞬,2014 年毕业至今,刚好十年。《异类》一书曾提到“一万小时定律”,要成为某个领域的专家,需要 10000 小时,按比例计算就是:如果你每天工作八小时,一天工作五天,那么成为一个领域的专家至少需要五年。而我在这个行业摸爬滚打十年,至今我仍觉得自己还差得远,更不敢说自己是某个领域的专家。十年是一个很好的节点,因为基本上也从“菜鸟”变成职场上的“老手”,有了一定自己的想法和经历,写技术十年就当做一次审视自己,复盘过去的成与败的契机。一些经验思考。

巫山老妖 4万+

RGB接口电容触摸屏驱动(二)接口与时序说明

RGB接口电容触摸屏驱动(二)接口与时序说明

杰克拉力船长个人博客 4921

FinRL实战:5步搞定股票量化交易策略(附Python代码)

本文详细介绍了如何使用FinRL框架,通过5个步骤构建基于深度强化学习的股票量化交易策略。内容涵盖从环境搭建、数据获取与预处理,到交易环境构建、模型训练(如PPO算法),以及策略回测评估与优化的完整流程,并提供了可运行的Python代码示例,帮助读者快速入门AI驱动的量化交易。

weixin_29062865的博客 631

有一本书,适合零到十年经验的程序员看

这本书就是《代码大全》。 这书名看起来就不想读? 我第一次看到这个书名的时候,心想难道这本书要把所有编程语言都讲一遍吗?但是当我深入阅读这本书之后,简直爱不释手。 这本书太厚了,你看不下去? 是的,很...

weixin_39037804的博客 142

啥是PLCnext?它能干啥?

简单来说,PLCnext是基于Linux操作系统的一个控制器运行时,所以它原生具备的两个特点:1.原生兼容IEC611312.原生兼容Linux各类应用PLCnext的控制器大概长下面这样(AXC F 1152、2152),通过背板总线连接IO、通过网口连接Profinet或者上位机。

博客 1649

[译]技术公司十年经验的职场生涯回顾

写在前面: 我经过了一场很不寻常的月份,从十月中旬到现在未来。上面一句话可以作为一句碎碎念,但想来和这便翻译的文章有些许异同,便就自私地加上去了。这是一篇总结文,一位曾在 Airbnb工作并现今仍在继续自我或者忘我地在互联网公司创新创业的佼佼者之一总结她的十年生涯,嗯是个妹子呢。不走寻常路的职业规划令人艳羡又深思又无聊又有趣。机器学习那...

weixin_34221073的博客 240

Java + Selenium + TestNg + Allure Web UI 自动化

我们知道,在Python中针对Web UI自动化有Python + Selenium + Pytest/Unittest +Allure的技术栈。那么对于Java而言,也有其独特的Web UI 自动化技术栈。相同的,我们同样的运用Selenium框架,测试报告同样运用Allure。不同的是,我们运用的语言由Python转化为了Java,测试用例管理框架从Pytest转化为了TestNG。

qq_45594960的博客 1913

R语言实战:GEO单细胞数据下载与自动化整理全流程(附代码)

本文详细介绍了使用R语言从GEO数据库下载scRNA-seq数据并实现自动化整理的完整流程。通过GEOquery和Seurat等工具包,读者可以高效获取单细胞RNA测序数据,完成从原始数据下载到预处理的全过程,最终生成可直接用于分析的Seurat对象。文章包含完整代码示例,特别适合生物信息学研究者处理单细胞数据。

weixin_29061821的博客 429

十年10M网速

大约2003年,中国办的网络都是1M的了,经过十年的发展2012年-2013年,要普及10M带宽 我已经用上10M带宽了,我感觉10M-100M,也要经过10年时间的发展。 2013.1.16

yazhouren的专栏 648

PySide6多线程避坑大全:信号槽崩溃、内存泄漏,这些雷我都帮你踩过了

本文深入探讨了PySide6多线程开发中的常见问题与解决方案,包括信号槽崩溃、内存泄漏等典型陷阱。通过实战案例和优化策略,帮助开发者避免UI线程操作错误、有效管理资源生命周期,并提升跨线程通信的可靠性。特别针对PySide6多线程特性,提供了线程安全日志、死锁检测等实用调试技巧。

weixin_32288959的博客 397

读书《淘宝技术这十年》

书中有很多值得品味思考的内容,这里分享给大家。 说在前面 我之前的文章有个抽奖活动,奖品是微信读书的《淘宝技术这十年》,中奖者是air9,请加我微信,书分享给你,另外会拉你进我的微信群。 另外,另一个送书活动还在继续,送的电子书是《阿里巴巴正传》,感兴趣的可以去上篇文章 读恐怖小说《1984》 参与。 也有人提议可以送实体书,目前还没有遇到新的非常好的值得读的实体书,等遇到了会送给大家。 《...

tiankonguse的专栏 2160

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Windows三十年进化史,从Windows 1.0到Windows 10

Windows三十年进化史,从Windows 1.0到Windows 10 从1985年Windows 1.0正式诞生到2015年Windows 10诞生,微软花了三十年的时间,从像素化桌面到现在扁平化的界面。让我们来看一下Windows 1.0到Windows10三十年来的变化吧。 1、1985年11月20日,微软发布了第一版的Windows操作系统——Windows1.0。 Wind...

鹿鸣天涯 7742

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

从AI到人机再到人机环:十年四本书

写这四本书的初衷还是得从剑桥图书馆说起,自从2012年来到剑桥逐渐适应了这里的环境和学术氛围以后,除了与朋友们聚会聊天,就是准备好矿泉水和面包,到学校各个图书馆里去看书、找书、借书了。记得那是2013年春天的一个下午,阴雨连绵,风呼呼地刮着,在剑桥大学图书馆的顶层,空无一人,静的有点瘆人,按图索骥,终于找到了那本1948年诺伯特·维纳发表的《控制论--关于在动物和机器中控制和通讯的科学》,心里很是...

人机与认知实验室 253

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

走进印度:《淘宝十年产品事》中译英,团队招募

===== 12月1日补充 ===== 昨天的招募,今天早上已经收到95份申请,截止本周内吧(12月6号): 这其实是一次中国产品界对世界的一次输出,前段时间被印度的出版商看上了,他们认为内容vely gooooo,所以,期待你的名字一起出现在一本英文书上,:) 接下来发生的事情如下: 申请会做一轮初筛, 然后拉大家建微信群, 抛一段同样的文字让所有人试译, 再由专业人士筛一轮, 接下来分组...

测试 293

近十年的Top10和Top10 worst产品

CNET于上个月评出近十年的Top10(最佳10个)和Top10 worst(最差10个)产品,挺有意思的。 Top 10:  iPod (2001)  TiVo (1999)    Google (1996)  Napster (1999)    Firefox (2004)    PalmPilot (1996)     Motorola Startac (1996)    Apple i...

weixin_34390996的博客 105

我的十年创业路

记十年创业的心路历程和我的创业思辨导读1 为什么写这篇文章2 详细的总结和思辨    2.01 感恩    2.02 为什么创业    2.03 十年流水账    2.0...

dotNET跨平台 1612

十年程序员的我,写了一本书

大家好,我是“无敌码农”,今天给大家讲述下我写的一本书——《微服务项目实战——从Spring Boot到Spring Cloud》的故事,也简单和大家聊一聊关于微服务架构的现状及发展趋势的...

无敌码农 618

我的毕业十年

弹指间已毕业整整十年,如果十年时间足能让一个IT人成为技术大拿的话,那我算是愧对了这过去的十年。最重要的是,刚刚从工作了9年的老地方离职了,此时再不写点什么,估计接下来更没有时间写了。题为毕业十年,但最近休整期思考了大学的一些事情,所以也写了一下大学生活的片段。故此,此文不是什么励志大片,仅以此记录自己平平凡凡走过的IT十年而已。   1. 大学篇 我是打心里就喜欢信管这个专业的,计算机和企

罗罗的专栏 4101

周迅:十年后的自己

  十八岁之前,我是个不知道自己想要什么的人,那时我每天就在浙江艺术学校里跟着同学唱唱歌,跳跳舞。偶尔有导演来找我拍戏,我就会很兴奋地去拍,无论多小的角色。   如果没有老师跟我的那次谈话,那么也许直到今天,仍然没有人知道周迅是谁。   那是1993年5月的一天,教我专业课的赵老师突然找我...

chouqijiang8163的博客 330

十年总结(终):新的十年,新的起点(转)

十年总结(终):新的十年,新的起点

GEN216IUS的专栏 1157

python十年后的体重_测试你十年后的体重增长多少

俗话说:男人不问收入,女人不问体重。减肥是所有女人一辈子的事业,可以没有爱情,可以没有存款但也一定不能有满身的肥肉。在这个拼颜值的时代,好看的身材也可以加分不少。想知道十年后的你体重变化是怎样的吗?测试一下就知道答案了,下面我们就一起来做个趣味测试吧!1、就算不饿,你也有晚上加餐的习惯吗?是的,已经成为了一种改不掉的习惯——2不会,为了体重也要忍住——3偶尔会加餐——42、在自己情绪不好的时候,你...

weixin_39637397的博客 1005

这10本书里,藏着可能改变人生的思维

当今社会,无论是个人规划,还是商业决策,都是对人综合实力的考量。我们不仅要掌握专业知识,还需要从其他领域汲取灵感,收获成长。 美国作家大卫·爱泼斯坦发现,很多精英并不限于领域内的深耕钻研,而是凭借对其他领域的兴趣和经验,才能使自己大放异彩。 今天的这10本书,希望能启发你的灵感。以下,Enjoy: 1/10 于春玲品牌思维课 作者:于春玲 推荐理由:这是一本关于如何构建和提升企业品牌持久竞争力的经典力作。 书中每一个案例的研判、思路碰撞、模型的构建,都是春玲老师“亲

逸尘谈PM 792

【随笔】十年之约,不止约定十年

十年之约是一个个人博客收录网站,其slogan是** 一个人的寂寞,一群人的狂欢。**『十年之约』是由『十年之约』项目组维护的非营利性、面向个人独立博客自愿加入的博客活动。希望通过『十年之约』能锻炼您的写作能力,进而提升您的思考、观察、记录、分享等能力,是一项非常有意义的活动。『十年之约』的宗旨是:我们的博客十年不关闭或者更久, 并保持更新和活力。如今视频自媒体时代,个人博客是一个更小众的群体,但是在广大的人民海洋里,在小众的事也会变得大众起来。

AomanHao的博客 594
上一篇: 从零构建大模型之Transformer公式解读
下一篇: 大模型应用系列:两万字解读MCP
半吊子全栈工匠
半吊子全栈工匠 领域专家: 嵌入式与硬件开发技术领域 领域专家: 嵌入式与硬件开发技术领域
博客等级 码龄18年 4632粉丝 897原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值