Larry Wall, Perl教父访谈(2)

开源技术大会2014-LarryWall演讲《无心插柳——开源萌发在那个春天》 开源技术大会2014上午主会场,Perl创始人LarryWall演讲《无心插柳——开源萌发在那个春天》。由于文件格式问题,建议下载后阅读清晰版。 立即下载

马: Perl到底是在哪些方面优于其它的脚本语言的,比如Python和Eiffel?

拉: 对于脚本语言来讲,Perl是独特的,而且在所有的计算机语言中,Perl也是非常独特的.它是唯一的一个有意识的并且明确的被设计为后现代化的计算机语言.而其它的语言都还不同程度的坚持着他们的现代化特性.事情虽然是这样,我却很少使用后现代化来描述Perl,因为很多人并不能真正理解后现代主义,虽然他们已经处于后现代化之中.事实是,美国文化已经完全进入后现代化了,不仅是音乐和文学,还包括时尚,建筑以及所有的与文化沾边的领域.

现代化是基于某种傲慢之上的,把创意置于一切之上的文化的有色眼镜,它的设计者认为他们认为很好的东西,全世界都应该喜欢.即是说,如果某件事值得做,那就应该把所有其它可能的途径都推到一边而仅留它一个.看看在Lisp中对圆括号的使用,以及Python中对空格的使用吧.还有对对象的强制使用,这包括很多语言,其中就有Java.所有这些都是"为了用户考虑"而限制了用户的自由.它们其实就是阻碍自由思想的翻版.1970年代的时尚警察已经离我们远去了,但是很多程序员依然是网络警察的奴隶.

恰恰相反,后现代主义允许人们对任何艺术品从个人的或是不同文化的背景给出诠释.无论怎么说都是你自己的事情.Perl的口号即来源于此,那就是:"条条大路通罗马".Perl之所以在你做任何事时都给你许多不同的可以使用的方法的原因是:我确信程序员们都希望自己是具有创造性的,他们可以有很多不同的理由想要写出他们自己的特别的代码.你想要做什么是你自己的事情,不是我应该考虑的.我要做的就是给你油漆--而你绘制你的图画.

马: 谁在使用Perl,他们怎么使用它?

拉: 两年前,我在一次商业展会中遇到一个人.他和另一个人在经过我面前的时候,他正给那人介绍国家安全局的有关情况,他说他用Perl写了一个过滤器.我于是问他,我可不可以告诉别人国家安全局使用Perl.他当时的回答是:"难道有谁不用吗?"所以现在我不会说国安局用Perl.我只是告诉大家国安局的人认为大家都在用Perl.我想大家应该知道这个.有趣的是,正是这个人中止了那个使用到perl的项目.当我告诉他,Perl可能是那个项目最大的受益者时,他觉得很开心.说到大家用Perl做什么,可以说是做什么的都有.几年前当我听说Perl在华尔街使用非常广泛的时候,着实吃了一惊.当时他们说:"每个桌子上都有一本Perl书".不过,考虑到市场分析需要他们不断的修正他们的模型,他们还需要扫描那些可能与他们在市场中的位置相关的新闻信息的话,就会觉得合情合理了.他们需要的正是快速原型和文本处理.很多人把Perl和CGI脚本联系在一起,其实那主要是由Apache下的mod_perl servlets完成的.Perl多是用于那些客户端的机器人和蜘蛛,它们搜索网络并在形形色色的数据库中建立链接.

不过,这并不是全部.如果你曾经受到垃圾邮件的困扰(有谁没有过?),那么几乎可以肯定,你的邮件地址被某个Perl脚本从网络上搜集到了.垃圾邮件本身也很有可能是由Perl脚本送出的.有人可能说Perl是滥用网络的首选.但同时也会有人以此为傲.这仅仅是Perl用途的一鳞半爪而已.如果不考虑民意测验或调查也不考虑美国人口调查局,那么最好的了解Perl用途的方法就是查看Comprehensive Perl Archive Network (CPAN)站点上的800个或是经常使用的模块.如果你把这些模块都看一遍,你会发现,Perl几乎与世界上所有事物都有联系.稍微动动脑筋,你会发现Perl之所以与世界上所有的事物都有联系,并不是因为Perl能够与所有这些事物如何如何,而是因为Perl可以把世界上的所有事物联系在一起. 组合学是令人惊讶的.

Perl杂志的第一期(不要与Linux杂志混淆)有一篇文章,标题是"Perl是如何拯救了人类基因组计划".文中说明了世界各地不同的基因组实验室使用了不同的数据库,其中的数据格式也是千差万别,而Perl如何将这些数据处理成统一的数据.马: 我们收到ActiveState Tool公司的一份产品声明,它说:``PerlDirect 提供对Perl的如下特性的可靠的,稳定的,支持和责任: Perl的可用的高质量的分发包,以及常用扩展;建议和支持;Y2K测试组件;每周一次的Perl警告信息.

PerlDirect提供给您直接支持一个引导开源运动的组织的机会.年捐助额应当不低于12,000美元.''你和这家公司熟吗?我觉得他们提供的这个机会非常有趣.这有什么意义吗?

拉: 听起来好像是和我签约的支持.

我相信即使是Richard Stallman也会承认技术支持是通过自由软件盈利的有效方式.我和ActiveState没有直接的联系,不过我跟他们合作过,我想他们解决的问题远比他们引起的问题要多得多.你得了解,他们的市场是Windows,在那里他们收取报酬帮用户做事是很好的事情,因为那是唯一不会使用户们疑惑的方式.Linux用户当然要聪明一些,不过他们还是不够聪明,没有认识到Windows完全是一种不同的文化,而Perl作为一种后现代化语言对环境是非常敏感的,因此在那样一种环境下看起来会大不相同.

马: 噢,我的本意并不是说他们不诚实--只是好奇想知道你到底知不知道这件事.你对开放源代码运动的看法怎样?你认为它将会变成长期存在,还是只是一时流行?

拉: 我的大脑一定是连接性很强的,因为我认为你所说的两方面都是正确的.而且它们同时也都是不对的. ;-)到目前为止,开源运动已经经历了20年的发展了,我们怎么能说它将变成什么什么?我们仅仅要向大家显示开源也曾经产生了大量优秀的代码程序.

另一方面,我们想更进一步,希望更多的人认识到这是一种有效的开发模式,对很多不同种类的,以前都是以封闭模式开发的软件也是适用的.不过,当然,它也是一时流行--就象我们已有的其它一时流行的东西一样,比如自由语法,结构化程序设计以及最近的面向对象.你得了解的是,对一时流行的东西,人们通常会有两种对待的方法.这有些象启示录中把绵羊和山羊分开一样.有些一时流行的东西,流行过去之后就会从此消失,但是另外一些一时流行的东西会由流行转为平淡,通常在这之前都会经过一个狂热期.

比如自由语法,结构化程序设计和面向对象等,它们都是由一时流行转为平淡,但是并没有消失.那些流行之后即消失的东西,通常不是来源于历史,而是来源于某些人的希望(通常是市场人士).以此来判断的话,开源应该会由一时流行转为普通应用,因为它其实已经是普通应用了.

以我来看,开源运动正是我们正在成长的后现代化文化的又一个展示.相反的,所谓商业机密的提法只是之前的创意无价的思想的翻版.我们以前经常说代码重用服务,可是这么多年来,只有当开源出现之后,代码重用服务才得以实现.后现代化程序员认为重用好代码不必考虑它是原创还是相反.这与自豪无关.后现代化主义者应该是一个剽窃者,剽窃一切他(她)认为精彩的东西.

马: 要是什么东西都开源的话,程序员要靠什么生活呢?

拉: 和许多其他开源的支持者不同,我不认为任何东西都会开源.我所持的是目前也在逐渐得到更多认同的观点,那就是那些具有很大规模的基础性的东西需要开源,就象美国政府逐渐认识到州际公路应该是不收费的一样.另一方面,我不会期望城市中的停车场会免费,除非那个市府特别开明.因此如果拿Windows和Word来比较,我更希望Windows能够开源.有一种说法,我们可以有很多方法通过开源来谋生,这就好像我们有很多方法通过开放的科学来谋生一样.不过,我认为这里正是开源需要努力开发的一个方向.科学在开始时,只是富人的爱好,只是当它进入到教育学院之中以后才逐渐发展成今天为我们所熟悉的形式..开源还没有开始这一步,或者更确切的说,开始了,但是各个教育院校却把目标设定在赚钱上了.我希望有更多的地方能向UC Berkeley学习.

马: 那么,你靠什么谋生呢?

拉: 开始时,我和其他人一样,一边编程一边做系统管理的工作,同时我还开发自由软件.之后,我写了一本书然后就有了版税.那本书很畅销,它使得我和出版商O'Reilly & Associates都赚了很多钱,可能赚的比我还多.当然,那些钱他们还要用来支付其他人的报酬,总的来说是差不多的.不管怎么说,三年前我和Tim O'Reilly都认识到,对Perl有利的事情dvO'Reilly & Associates也是有利的.

因此现在我想干什么他们都会为我付账,只要是对Perl有帮助就好.这是一种良好的共生关系.马: 有没有新的令人感兴趣的计划呢?

拉: 有人建议我写作骆驼书的第三版,除此之外我还没有正式的计划.

马: 哦.介绍一下你自己吧.比如你在哪里上的学,你有什么兴趣爱好之类的.

拉: 我的童年有一半时间是在洛杉矶南部度过的,然后是在华盛顿.我从高中毕业之后,进入西雅图太平洋大学,开始学的是化学和音乐,然后转到医学,最后的专业是自然和人工语言.之后,我和我妻子参加了语言学的进修.当时,我们打算去做传教士(准确的说,是圣经解说员),最后考虑到健康的原因放弃了该计划.有趣的是,传教士们由Perl上得到的帮助大概会大于我作为一名传教士能够提供的帮助.至于说到我的兴趣,这个有点困难,因为我对所有有趣的东西都感兴趣.说起来就会有很多了,不过有两样例外,即歌剧和肥皂剧--太空题材的影片除外.

马: 你娱乐的时候会做什么?

拉: 读书和听我的妻子给我读书(特别是太空类的).和家里任何人讨论任何问题.玩填字游戏.玩麻将.练合气道.看动画.逗鱼.

马: 看起来你很忙碌有很有趣味--很好的组合.那么你早饭吃什么?

拉: 我早饭吃很多东西--不过,我通常是在午餐时间吃早饭.

马: 时间过得好快.谢谢你抽空接受采访.非常感谢!

2026滑块验证码终极实战:缺口检测算法+人机轨迹模拟,识别率从60%飙升至95%全方案 **摘要:2026年AIGC技术发展导致传统验证码失效,滑块验证码成为主流防护手段。本文深入分析了传统方案识别率低的原因,并提出多级检测融合和行为拟合优化方案。通过图像预处理优化、三级缺口检测引擎(差分图像法、Hu矩轮廓匹配、YOLOv8n模型兜底)将识别率提升至99.2%。同时针对轨迹模拟环节,设计了包含抖动特征、时间随机性和个体差异的行为模型,使通过率从12%提升至87%。该方案解决了传统方法在缺口定位精度和轨迹真实性方面的核心痛点,为应对新一代验证码风控提供了完整的技术框架。 阅读详情

相关推荐

从零到一:如何用GraphRAG Visualizer打造你的第一个3D知识图谱

本文详细介绍了如何使用GraphRAG Visualizer从零开始构建3D知识图谱,涵盖环境准备、Parquet数据处理、可视化操作及高级分析功能。通过简洁的步骤和实用技巧,帮助用户快速掌握这一强大的知识图谱可视化工具,提升数据分析和关系挖掘效率。

rock5的博客 220

用 Perl 语言 Mojo::Weixin 模组开发微信聊天机器人

Demo1网上有好些用 Python 语言编写的微信机器人,此前没怎么关注,毕竟这件事在微信生态属于灰色地带。小林是 Perl 语言爱好者,前几天顺手搜索了一下,发现也有...

林兴陆 3564

从零到一:AIC8800 USB-WiFi模块在Linux内核6.x下的驱动适配与避坑指南

本文详细介绍了AIC8800 USB-WiFi模块在Linux内核6.x下的驱动适配全流程,包括环境准备、源码编译、内核API变更处理及常见问题解决方案。重点针对驱动适配中的符号导出、设备ID识别和固件加载等核心挑战提供实用指南,帮助开发者高效完成硬件驱动兼容性调试。

k8l9m0n的博客 1026

Perl环境及飞书机器人脚本

OPENSSL 安装 检查版本 openssl version -a 如果已经安装则测试一下信息 OpenSSL 1.0.2k-fips 26 Jan 2017 built on: reproducible build, date unspecified platform: linux-x86_64 options: bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) compiler: gcc -

Robin.Wang Tech Blog 641

SpringCloud2025+SpringBoot3.5.0动态路由503问题排查与负载均衡依赖解析

本文详细排查了SpringCloud 2025与SpringBoot 3.5.0环境下,Spring Cloud Gateway动态路由返回503错误的根本原因。核心问题在于新版网关未默认集成负载均衡器,导致无法解析lb://服务名。通过对比静态路由与动态路由,定位到需显式引入spring-cloud-starter-loadbalancer依赖,并提供了完整的解决方案与最佳实践配置。

s3t4u的博客 504

BUCK型DC/DC变换器的建模与仿真

BUCK型DC-DC变换器的建模与仿真摘要1 文献调研1.1 研究背景1.2 Buck电路的应用场合2 原理分析2.1 模型介绍2.2 模型分析2.3 频域和时域响应2.4 参数指标要求3 参数设计3.1 校正器选择3.2 校正器参数整定3.2.1 积分器3.2.2 一阶微分环节3.2.3 超前校正器3.3 改进4 结论与展望参考文献 摘要   目前工业自动化水平已成为衡量各行各业现代化水平的一个重要标志。如何对一个系统进行建模分析、补偿校正变得越来越重要。   本文选择BUCK型DC/DC变换器作为载体,

屠龙归来仍是少年 2万+

Larry Wall,Perl教父访谈

Larry Wall,Perl教父访谈 看看Perl的创造者,看看Perl的新进展. 我和Perl脚本语言的创造者,Larry Wall(拉里沃尔,),在3月1号通过 电子邮件进行了一次"交谈".Larry显得非常健谈,你一定会觉得这次 交谈既有趣又使人受益.我是这样感觉的.Marjorie(马乔里,记者,以下简称马): 开始的时候,是什么让你决定开发Perl的? Larry(拉里,

wti的专栏 2826

从零开始:如何在Windows上搭建Airsim仿真环境(避坑指南)

本文是一份详细的Windows平台AirSim仿真环境搭建指南。文章从硬件要求、Visual Studio与虚幻引擎安装开始,逐步讲解AirSim插件编译、UE项目配置,并重点介绍了通过WSL2连接PX4飞控软件实现软件在环仿真的完整流程。内容涵盖常见问题排查与性能优化,旨在帮助开发者避开常见陷阱,高效构建可用于无人机算法开发的虚拟测试平台。

earth的博客 301

传奇程序员Larry Wall:Perl的乐趣

作者: 2003-8-1 0:48:13  出处:博客中国(Blogchina.com) 原始出处: AKA杂志  "Larry Wall是如何发明了一门凌乱的编程语言--接着改变了WEB的面貌?"  LarryWall微笑着回忆起Yahoo的共同创始人DavidFilo几年之前发给他消息,当时正值Yahoo公开面市之前的不久.File写道:"如果没有Perl,Wall发明的通用编程语言,Yaho

1227

光电式烟雾传感器实战指南(一) 光迷宫设计与散射原理篇

本文深入解析了光电式烟雾传感器的核心部件——光迷宫的设计原理与光散射机制。文章详细阐述了如何通过精心设计的光学结构实现‘透气不透光’,并重点探讨了前向散射(尤其是135°角)在提升烟雾监测系统灵敏度与可靠性中的关键作用,为DIY爱好者提供了从理论到实践的完整指南。

weixin_29229055的博客 586

解锁激光加工密码:功率、频率、脉宽、占空比全解析

激光加工利用高能量激光束实现材料加工,具有无接触、高效率等特点。其核心参数包括功率(决定能量输出)、频率(控制脉冲重复)、脉宽(调节能量作用时间)和占空比(调控工作周期),这些参数相互协同影响加工效果。针对不同材料需采用差异化参数组合:金属材料需较高功率,塑料需低功率防过热,陶瓷需高频短脉宽减少热应力。实际操作中应通过小范围测试逐步优化参数,并注意解决烧损、切割不平整等常见问题。合理调节这些参数可实现高质量、高效率的激光加工。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 616

Larry Wall, Perl教父访谈(Reship )

Larry Wall, Perl教父访谈 看看Perl的创造者,看看Perl的新进展. Larry Wall, Perl教父访谈 看看Perl的创造者,看看Perl的新进展.我和Perl脚本语言的创造者,Larry Wall(拉里沃尔,),在3月1号通过电子邮件进行了一次"交谈".Larry显得非常健谈,你一定会觉得这次交谈既有趣又使人受益.我是这样感觉的.Ma...

LEWENCAI560618的博客 546

11、气动外形优化中的连续伴随方法

本文探讨了连续伴随方法在气动外形优化中的理论背景、实现和验证过程。通过使用DLR的FLOWer求解器,将伴随方法应用于Euler和Navier-Stokes方程,以高效计算成本函数梯度,从而显著减少优化过程中的计算成本。文章还介绍了该方法在RAE2822翼型和ONERA M6机翼等案例中的应用,并展示了其准确性和效率。未来展望包括扩展到复杂流动模拟和多学科优化。

desk3的博客 167

Larry Wall, Perl教父访谈(1)

看看Perl的创造者,看看Perl的新进展. Larry Wall, Perl教父访谈 看看Perl的创造者,看看Perl的新进展.我和Perl脚本语言的创造者,Larry Wall(拉里沃尔,),在3月1号通过电子邮件进行了一次"交谈".Larry显得非常健谈,你一定会觉得这次交谈既有趣又使人受益.我是这样感觉的.Marjorie(马乔里,记者,以下简称马):开始的时候,是什么让你决定开

menuconfig的专栏 1047

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

larry wall

Wall只是为了解决在日常工作中的碰到的一个编程问题才发明了perl语言1986,那时Wall是Burroughs公司的附属公司的一个系统管理员.那时,他致力于加州Santa Monica和Paoli,Pa.的计算机之间信息的同步交换有关的"NSA的一个秘密项目",但NSA不止希望希望信息的同步--它还希望生成关于每次交换的报表,而Wall现有的工具没有一样可以胜任这个任务.把所有的事情...

banyi4389的博客 449

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Larry Wall 和 Perl的美德

作者:ANDREW LEONARD翻译: tachi/seeven[AKA]     如果Internet上也有一个孤独的Jedi骑士(参看>)的话,那么他就是Larry Wall。Larry这位Perl编程语言的发明者已经为自由软件工作了好多个年头了,而且走出了一条与众不同的道路。   曾经局限于Unix平台的Larry和他的Perl黑客叛逆者们现在发现他们正处于更大的一个世界:

Chenxinyi's Weblog 1726

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

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

学习Perl

上个星期一家软件生产商过来考察系统的使用状况。一个老外程序员给我演示了一下用Perl来处理系统日志,以便我们自己分析日志。Perl的简单高效易用给我留下了非常深刻的印象,于是开始研究Perl。今年1月份的程序员上就有一篇关于Perl创始人Larry Wall的访谈。Larry是一个懒惰的程序员,于是Perl也被设计为一种简单直接的语言,注重问题本身以及如何简单快速的处理问题。Perl80%以上的特

夜雨长安的专栏 534

程序员的三大优点:懒惰、急躁和傲慢

1987 年的今天,Perl 1.0 发布。今天是 Perl 语言诞生 35 周年。忽略一下这张图的时间Perl 语言发明人 Larry Wall 是一位传奇的黑客、一个风趣幽默的人。他的传世名言——程序员的三大优点是:懒惰、急躁和傲慢。在编程圈子的普及程度大概仅次于——林纳斯大神的 “Talk is cheap. Show me the code.”但是,很多人还不太了解大神这句话背后的整套...

图灵教育 2272

有三类人永远做不了程序员

最近刚忙完一个项目,在做项目总结的时候,有一个强烈的感觉,同样都是带出两年的徒弟,在项目实际开展过程中展示的成果和软件模块的测试结果差别都有几倍的关系了。大家都是在一个起跑线上为啥差异这么大?是不是什么人都能做程序员?一系列的疑问在脑中呈现,这么多疑问归结起来:什么样的人适合做程序员? 有三类人永远做不了程序员 善于思考发现总结问题,并且积极的进补的人。程序员是一个对细节把控相当严苛的职业,无数...

HTOGHY的博客 1万+

用shell而不用perl/python的理由 shell/perl/python/php

shell/perl/python

finethere的专栏 1423
上一篇: Larry Wall, Perl教父访谈(1)
下一篇: 揭秘成为最牛程序员的五大要诀
menuconfig
博客等级 码龄19年 713粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值