阅读更多

43顶
3踩

编程语言

转载新闻 程序员那些悲催的事儿

2011-03-22 16:33 by 见习编辑 hotwind 评论(32) 有16455人浏览
在StakeOverflow上有这样一个贴子叫“Confessions of your worst WTF moment”,挺有意思的,我摘几个小故事过来,希望大家在笑过之后能从中学到什么——所有的经验都是从错误中来的(我在其中加了一些点评)

    我们公司的软件是给警察局用的,那是一个对用来处理被逮捕的人的系统,此系统还需要收集脸部特征和指纹信息,并且,这个系统和会向FBI的系统提交这些信息。当我们在测试这个系统的时候,我们一般都是用我们自己的指纹,当然,数据库联着的是我们的测试数据库。不过,有一次,在我们测试完后,我们忘了把系统切换回生产库,于是我们的测试数据库就联上了生产环境,于是我们的指纹信息和照片就散布到了其它系统中……清除我们警察局这边的还好办,但是,你需要波士顿警察局警司去法院签字才能从FBI的数据库中清除我们的信息。

点评:测试环境和生产环境的数据不要混在一起。

    有一次,我需要向新系统中导入一堆数据,因为数据量太大,需要5个小时,只能在夜里来干,在系统需要正式使用前2个小时,数据导完了,此时是凌晨4点。随后,我需要删除一些数据,于是我在SQL命令地上输入了“DELETE from important_table; where id=4”。是的,我没有看到哪里还有个分号,天啊。

点评:这就是加班工作的恶果。另,在delete之前最好先做一次select。

    我把我的管理员口令提交到了一个开源软件的源码里。

点评:1)版本管理器里的东西是删不掉的。2)一些用户和口令要hard code在代码里,所以,不要混用代码使用的权限和管理员的权限,小心管理程序的运行权限,为其注册专门的用户。

    我为一个很大的银行开发软件,在我的代码里,我为一段理论上根本不可能执行到的代码加了一个报错信息。有一天,不可思异的事发生了,这条报错信息显示在了该银行的1800个分行的超过10000个终端上——“如果你看到这个信息,说明整个系统被**了,回家吧,祝你过得愉快!”

点评:“假设是恶魔”,Assume意为Ass – u – me,意为——搞砸你和我。对于一些关键东西,永远不要做假设。小心你言语中的——“可能、应该、觉得、不应该”等词语,程序可不认这些东西。

    我远程登录到服务器上加几个防火墙规则。第一件我想干的事是在不允许任何人的任何连接,第二件是,为某个端口打开访问权限。不过,我在做完第一件事后就把配置保存了,结果其生效了……

点评:这样的事经常发生,做远程网络管理的人多少会有那么几次发生这样的错误。在你将你的网络配置生效前,你得想一想,断线了你是否还能登得上去。改配置不要太冲动,生效前检查几次。

    我们的代码中有一个模块完美地工作了很多年了,只是代码太乱了。我说服了我的老板,我可以重写这个模块,于是我花了三个星期来重写这个模块。今天 ,我还记得,我的老板站在我的后面看着我,而我在在流着斗大的法汗珠去fix被我重写的“超级漂亮”的那个模块中一个接一个的bug。从那以后,我再也不重写代码了,除非有重大的利益。

点评:这就是所谓的屠宰式编程。这个案例告诉我们两个道理,1)维护代码要用最最最保守的方法来进行。2)重构代码前要像一个商人一样学会计算利益。当然,ThoughtWorks的咨询师一定会告诉你TDD,结对,极限等等方法告诉你如果实践重构。但我想告诉你,一个程序在生产环境里运行好几个年能没有问题是一件很不容易的事,那怕其中的代码再烂,你再看不过去,你都要有一个清醒的头脑明白这几点,1)软件的运行质量是远远大于代码质量的,2)你的测试案例是远远小于生产环境的,3)软件的完美的质量,是靠长时间的运行、测试和错误堆出来的,而不是某种方法论。

————————————————

相信大家做程序员这一生中也有很多发生在自己身上的悲催的事儿,欢迎分享。我先分享几个我亲身经历过的事。

一个发生在我的领导身上。

    我98年刚参加工作的时候,在某单位网络部门,一次,我们整个部门去给下属单位培训Cisco路由器,结果我们发现带去培训地点的设备少带了集线器HUB,设备连不起来。于是领导很不高兴,质问我们为什么没有带集线器?那几个对领导平时就不满的老员工说办公室里没有集线器了,都借给别的部门了。领导想了想,问我:“陈皓,我记得上次我给过你个集线器”,我说,“好像没有吧,我记不起来了,什么牌的?几口的?”,领导说: “什么牌子想不起来了,不过我记得那个集线器是一个口的”。“一个口的?!”,我心里嘀咕着,“真敢说啊”。但我不敢接话了。那几个老员工来劲了——“哪有一个口的HUB啊,一个口的怎么联两台电脑啊?”,领导说:“用两个一个口的不就行了”。领导这话一出,全场一片寂静,无言以对……

后来:我们所有的组员都离开了我们的这个领导,我们的这个领导今天还在那里工作。我想告诉大家,很多时候该走的是领导(包括外企,我上一东家正在裁人,不过我觉得该被裁掉的应该是那些经理)。我们的领导经常出这样或那样的笑话,这让我随时随地地警醒自己——“不要当一个被人笑话的经理”,于是,今天我还在努力地学习技术。

另一个发生在我身上

    刚刚接触Linux的时候,还不是很懂,那时的PC还只有奔3,编译公司的程序好慢啊,有时候为了调查一个问题,需要不断地打log,来来回回地编译,很不爽。直到有一天,硬盘不够了,df一下,发现/dev/shm还有空间。于是,把全部程序copy了过去,发现编译起程序超快无比,爽得不行。于是就把工作环境放在/dev/shm下了,连开发都放在这里了。这一天,开发一个功能,改了十来个文件,加班很晚,觉得基本搞定,大喜,回家睡觉。第二天一来,发现/dev/shm下空了,一个文件都没有了,问同事,同事不知,同事还安慰我说,上次他的文件也不知道被 谁删了,于是我大怒,告老板!老板也怒,发邮件到整个公司质问大家谁删了陈皓的程序,无人应答。IT部门答,“昨晚唯一的操作就是重启了linux服务器,什么也没干,不过我们天天备份服务器,可以恢复”,IT部门问我丢的文件在哪个目录下?于是,我reply to all – “在/dev/shm下……”,哎,人丢大发了……

后来:我很感谢我以前犯的这个错,从那天以后,我开始立志学好Linux,这个错误让我努力,让我发奋。所以,我想告诉大家——尤其是刚出道的程序员,你们要多多犯错,要犯错那种丢死人的错,这样你才会知耻而勇。

再来一个发生在我同事身上的

    01年,我们开发银行系统,在AIX上开发,RICS6000很贵,只能在客户那里开发,开发进度很紧张,慢慢地硬盘就不够用了,系统中有大量的垃圾文件,于是需要清除一些文件,于是有一个同事写了一个脚本,可以自动清除的各种不重要的文件,里面有一条命令大致是这个样子“ rm -rf ${app_log_dir}/*”,意为清除程序运行的日志。为了使用这个脚本,需要在root用户下运行,一开始还不错。直到有一天,某人一运行,整个根就没了。搞得整个团队只能用一周前的备份重写已写好的代码。后来,才发现原因是${app_log_dir}变量为空,于是成了“rm -rf /*”……

后来:这个事后,我的那个同事,把rm命令改了名,并自己写了一个rm命令,把删除的文件先放到一个临时目录下。而我也因为这个事情,到今天,每次当我在root目录下使用rm时,敲击回车的手都是抖的。(另,rm时永远使用绝对路径)这里,我想告诉大家——犯错不可怕,可怕的是不会从中总结教训,同一个错犯两次。

欢迎分享发生在你身上那些悲催的事。

作者:陈皓
来自: 酷壳
43
3
评论 共 32 条 请登录后发表评论
32 楼 wuyuetiank 2011-09-27 22:15
我最惨的事就是用gost重装了系统后发现剩下一个盘了,辛苦了半年了成果没了
31 楼 fannyxjf 2011-04-05 00:39
这个是转载吧?原文是在酷壳上的吧?http://coolshell.cn/articles/3980.html
30 楼 mqlfly2008 2011-03-25 11:56
悄悄得看。。。。
29 楼 ecchanger 2011-03-24 19:06
很不错,这个要顶...
28 楼 tomsu 2011-03-24 10:29
牛X, 之前也遇到过这种事情, 只是很无奈
27 楼 ahead_zhan 2011-03-24 09:23
很多时候都是为了图一时之快,就忘了备份
26 楼 TheMatrix 2011-03-23 22:09
嗯,还不错,很多自己似乎也遇到过了。
25 楼 littleJava 2011-03-23 21:30
在window下干过 shift +delete 的事
以前自己觉得 shift+delete 删东西很快,不用在回收站删除了。开发的时候自己习惯性 shift delete ,于是悲催了,没备份。几天的东西又要重写,更厉害的事 我现在依然在用shift delete。 依然没有学会备份,那种悲催的事情偶尔还会发生。
看来这就是自己做开发来进步比较慢的原因了,一定要改掉自己的坏习惯
feiyan35488 写道
在window下干过 shift +delete 的事
以前自己觉得 shift+delete 删东西很快,不用在回收站删除了。开发的时候自己习惯性 shift delete ,于是悲催了,没备份。几天的东西又要重写,更厉害的事 我现在依然在用shift delete。 依然没有学会备份,那种悲催的事情偶尔还会发生。
看来这就是自己做开发来进步比较慢的原因了,一定要改掉自己的坏习惯

偶也是,几次误删之后,开始用普通的delete了,只是把确认按钮去掉,删除比较方便
24 楼 feiyan35488 2011-03-23 17:59
在window下干过 shift +delete 的事
以前自己觉得 shift+delete 删东西很快,不用在回收站删除了。开发的时候自己习惯性 shift delete ,于是悲催了,没备份。几天的东西又要重写,更厉害的事 我现在依然在用shift delete。 依然没有学会备份,那种悲催的事情偶尔还会发生。
看来这就是自己做开发来进步比较慢的原因了,一定要改掉自己的坏习惯
23 楼 nakupanda 2011-03-23 16:54
连发两个回复都打错内容, 够杯具的
22 楼 haha1903 2011-03-23 16:23
刚刚干过一个,使用 sudo vi /etc/sudoers ,然后把文件改错了,还硬是 x! 一下,
然后发现,root 用户的密码忘记了,太惨了!
21 楼 nakupanda 2011-03-23 16:12
nakupanda 写道
试过远程操作服务器,禁止了所有外部连接。。。

也试过rm -rf / xxx 多了个空格, 那个XXX 压缩后大概2G左右大小, 我用ADSL 40K上传了差不多2天 ...

是rn -rf /xxx/ yyy
20 楼 nakupanda 2011-03-23 16:11
试过远程操作服务器,禁止了所有外部连接。。。

也试过rm -rf / xxx 多了个空格, 那个XXX 压缩后大概2G左右大小, 我用ADSL 40K上传了差不多2天 ...
19 楼 黑暗浪子 2011-03-23 16:09
很多时候该走的是领导
18 楼 rzk513 2011-03-23 14:57
呵呵 !~~ 很有意思的一篇文章,记得刚刚工作的时候,我们做10086的系统,但不是BOSS 部分是业务部分的,也是delect from t_ucp_userbaseinfo;where userId Like 'qt%';的语句 呵呵 整了 一晚上,后来每次执行的时候都备份一份  以防手抖。。。哈哈哈 !~ 不过其他的就很受教了 学习!~~
17 楼 xujun2008 2011-03-23 14:24
很有意思
16 楼 java960 2011-03-23 13:08
犯过那delete from table,现在每次都先来个:
select * from table where id = 123
然后arrow up,再改成delete.不过有的database没这arrow up, 就有点担心。
15 楼 glamey 2011-03-23 12:54
写的很好,深有感触
14 楼 Aaronic 2011-03-23 12:30
受教了 
13 楼 elmar 2011-03-23 10:51
我一直觉得System Administrator是外星人。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 摘录《程序员那些悲催的事儿》

    http://coolshell.cn/articles/3980.html<br />  里面这一条很棒: <br />我们的代码中有一个模块完美地工作了很多年了,只是代码太乱了。我说服了我的老板,我可以重写这个模块,于是我花了三个...

  • 转自酷壳:程序员那些悲催的事儿

    相信大家做程序员这一生中也有很多发生在自己身上的悲催的事儿,欢迎分享。我先分享几个我亲身经历过的事。 一个发生在我的领导身上。 我98年刚参加工作的时候,在某单位网络部门,一次,我们整个部门去给...

  • [转]程序员那些悲催的事儿

    相信大家做程序员这一生中也有很多发生在自己身上的悲催的事儿,欢迎分享。我先分享几个我亲身经历过的事。 一个发生在我的领导身上。 我98年刚参加工作的时候,在某单位网络部门,一次,我们整个部门去给...

  • 程序员那些悲催的事儿下

    相信大家做程序员这一生中也有很多发生在自己身上的悲催的事儿,欢迎分享。我先分享几个我亲身经历过的事。 一个发生在我的领导身上。 我98年刚参加工作的时候,在某单位网络部门,一次,我们整个部门去给...

  • 基于COMSOL的电磁场与光学仿真:多极分解通用模型探讨石墨烯临界耦合光吸收与费米能级可调性,COMSOL 多极分解,分方向多级展开通用模型,电磁场,面上箭头,透射率光学 BIC 仿真 COMSOL

    基于COMSOL的电磁场与光学仿真:多极分解通用模型探讨石墨烯临界耦合光吸收与费米能级可调性,COMSOL 多极分解,分方向多级展开通用模型,电磁场,面上箭头,透射率光学 BIC 仿真。 COMSOL 准 BIC控制石墨烯临界耦合光吸收。 COMSOL 光学仿真,石墨烯,光吸收,费米能级可调 ,关键词:COMSOL; 多极分解; 分方向多级展开通用模型; 电磁场; 面上箭头; 透射率; BIC 仿真; 准 BIC; 控制石墨烯; 临界耦合光吸收; 光学仿真; 石墨烯; 光吸收; 费米能级可调。,COMSOL多极分解法仿真石墨烯光吸收特性及费米能级调控

  • Matlab Simulink下的单相光伏储能模型:可再生能源发电与蓄电池储能系统建模与仿真,涵盖MPPT电导增量法及并网技术,Matlab simulink模型,单相光伏储能模型可再生能源发电 太阳

    Matlab Simulink下的单相光伏储能模型:可再生能源发电与蓄电池储能系统建模与仿真,涵盖MPPT电导增量法及并网技术,Matlab simulink模型,单相光伏储能模型可再生能源发电 太阳能发电蓄电池储能建模与仿真 可调节光照强度,采用MPPT电导增量法最大功率点跟踪双向DC DC蓄电池储能及补偿。 额定功率2500w,并网等级311v有效值220v ,Matlab Simulink模型; 单相光伏储能模型; 可再生能源发电; 太阳能发电; 蓄电池储能建模与仿真; 调节光照强度; MPPT电导增量法; 最大功率点跟踪; 双向DC DC; 额定功率2500w; 并网等级311v; 有效值220v,基于Matlab Simulink的单相光伏储能模型:MPPT跟踪与蓄电池储能补偿研究

  • 基于springboot的音乐网站与分享平台lw+ppt

    包含项目论文和毕业答辩PPT,详情请看博客:https://blog.csdn.net/2401_87429224/article/details/145231201 论文主要包括以下内容: 1、中英文摘要; 2、目录; 3、绪论,包括背景、意义、开发工具、国内外现状等; 4、系统分析,包括可行性分析、设计原则、需求分析、业务流程分析等; 5、系统设计,包括功能设计、数据库设计等; 6、系统实现,包括各模块实现; 7、软件测试,包括测试环境、测试条件、运行情况等。

  • "图腾柱PFC电路仿真研究:电压电流双闭环PI控制下的动态响应与稳定性验证及主电路设计说明",图腾柱(totem pole)PFC电路仿真,采用电压电流双闭环PI控制 输出特性好 仿真中模拟了给定

    "图腾柱PFC电路仿真研究:电压电流双闭环PI控制下的动态响应与稳定性验证及主电路设计说明",图腾柱(totem pole)PFC电路仿真,采用电压电流双闭环PI控制。 输出特性好。 仿真中模拟了给定电压变化时的动态响应情况。 可验证闭环控制的稳定性。 另也有图腾柱PFC主电路参数的设计说明 matlab simulink plecs等环境 ,totem_pole; PFC电路仿真; 电压电流双闭环PI控制; 动态响应; 闭环控制稳定性; 主电路参数设计; Matlab Simulink; PLECS。,"图腾柱PFC电路仿真与参数设计研究,电压电流双闭环PI控制稳定性的验证"

  • 2025年材料员网络培训考试题库及答案.docx

    2025年材料员网络培训考试题库及答案.docx

  • **Qt CPP多列时间轴控件:事件线发展故事大纲的可视化编辑器**,Qt CPP实现的多列时间轴控件、可与多段字符串格式自由转、也可手动添加列表项、专门用来以时间轴作为事件线发展顺序的故事大纲 时

    **Qt CPP多列时间轴控件:事件线发展故事大纲的可视化编辑器**,Qt CPP实现的多列时间轴控件、可与多段字符串格式自由转、也可手动添加列表项、专门用来以时间轴作为事件线发展顺序的故事大纲。 时间可输入任意内容,不限于时间,每一时间段允许多列,即多个文字节点,行与行、列与列 之间任意拖拽更顺序,可与文字自由转,按需修改快捷键,所有的编辑可撤销,美观的调整动画。 源码: 使用Qt5.13.1_MinGW编译通过。 ,Qt CPP时间轴控件; 多列时间节点; 自由转换字符串格式; 手动添加列表项; 时间轴事件线; 拖拽更换顺序; 快捷键自定义; 编辑可撤销; 动画调整。,基于Qt C++的多功能多列时间轴故事线管理控件

  • 红外解码 红外遥控,个人学习整理,仅供参考

    ===下载后有不懂的可以私信我。==== 红外解码与红外遥控是电子工程领域中常见的一种技术,主要应用于家用电器、智能家居设备以及遥控玩具等。本文将深入探讨这两个概念,并结合"28.红外遥控解码数码管显示实验"这一主题,为你提供丰富的学习内容。 我们要理解红外(Infrared,简称IR)的基本原理。红外是一种电磁波,频率范围在300GHz到400THz之间,位于可见光的红色光谱之外。在遥控系统中,红外通信通常采用的是近红外频段,即约940nm左右的波长。它具有传输距离近、功耗低、抗干扰能力较弱的特点,适用于室内短距离通信。 红外遥控系统由两部分组成:发射器(遥控器)和接收器(解码器)。发射器通常包含一个微控制器和红外LED,用于编码并发射控制信号。这些信号是通过特定的编码方式,如RC5、NEC、SIRC等编码协议发送的,以确保数据的准确性和唯一性。接收器则含有一个红外光电传感器,用于捕捉这些信号并进行解码。 红外解码是接收器的核心功能。当接收到红外信号后,解码器会对其进行解调,然后解析出编码的指令。解码过程包括信号放大、滤波、峰值检测和脉冲计数等步骤。不同的编码协议有不同的解码方法,例如NEC协议的解码需要识别前导码、地址码、命令码和校验码等组成部分。 数码管显示在红外遥控实验中扮演了重要角色。数码管,也称为数字管或七段显示器,可以用来显示数字、字母和一些特殊字符。在红外遥控解码实验中,一旦解码成功,通常会通过数码管将接收到的指令代码或状态信息呈现出来,便于观察和调试。 "28.红外遥控解码数码管显示实验"可能是一个实践项目,旨在帮助学习者亲手搭建一个简单的红外遥控系统。这个实验可能涵盖了以下内容: 1. 硬件搭建:包括红外接收模块、微控制器(如Arduino或AVR)、数码管及其驱动电路。 2. 软件编程:编写微控制器的程序来实现红外信号的接收、解码以及数码管的显示控制。这涉及到对红外解码协议的理解和编程实现。 3. 实验操作:调整遥控器,发送不同指令,观察数码管的反馈,验证解码的正确性。 通过这样的实验,你可以亲身体验红外遥控系统的完整流程,加深对红外解码原理和实践应用的理解。同时,这也是提升动手能力和解决问题能力的良好机会。 红外解码和红外遥控是电子工程师必备的技能之一。掌握这些知识不仅可以让你理解和设计自己的遥控系统,还为进入更高级的嵌入式系统开发打下基础。希望这个资源能对你在红外学习的道路上有所帮助,祝你在探索科技的旅程中不断进步。。内容来源于网络分享,如有侵权请联系我删除。

  • Java毕业设计-springboot-vue-图书个性化推荐系统(源码+sql脚本+29页零基础部署图文详解+38页论文+15页答辩+环境工具+教程+视频+模板).zip

    资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:29页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:配套答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于 B/S 网络结构,在 IDEA 中开发。服务端用 Java 并借 Spring Boot 框架搭建后台。前台采用支持 HTML5 的 VUE 框架。用 MySQL 存储数据,可靠性强。 能学到什么: 使用Spring Boot搭建后台。VUE 框架构建前端交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。

  • 【Unity动画烘焙插件】GPU ECS Animation Baker

    【Unity动画烘焙插件】GPU ECS Animation Baker

  • MATLAB轴承动力学模拟:滚动轴承故障建模与ODE45数值计算(含正常、外圈故障、内圈故障及滚动体故障分析),MATLAB轴承动力学代码(正常、外圈故障、内圈故障、滚动体故障),根据滚动轴承故障机理

    MATLAB轴承动力学模拟:滚动轴承故障建模与ODE45数值计算(含正常、外圈故障、内圈故障及滚动体故障分析),MATLAB轴承动力学代码(正常、外圈故障、内圈故障、滚动体故障),根据滚动轴承故障机理建模(含数学方程建立和公式推导)并在MATLAB中采用ODE45进行数值计算。 可模拟不同轴承故障类型,输出时域加速度波形、滚道接触力、相图。 ,核心关键词:MATLAB; 轴承动力学代码; 故障机理建模; 数学方程建立; 公式推导; ODE45数值计算; 不同轴承故障类型; 时域加速度波形; 滚道接触力; 相图。,MATLAB滚动轴承故障动力学模型及数值模拟分析系统

  • 智能控制第5版仿真程序(MATLAB)

    原作者:刘金琨教授

  • 2024最强Java面试八股文-最新面试题

    《2024最强Java面试八股文》是一份针对Java面试的全面指南,内容涵盖JVM、MQ、MyBatis、MySQL、Redis、Spring Boot、Spring Cloud以及设计模式等多个方面。这份资料旨在帮助求职者系统地复习和掌握Java及相关技术的核心知识点,从而在面试中取得更好的成绩。 该资源不仅适用于校招,也适用于社招。无论您是一名即将毕业的学生还是已经有一定工作经验的开发者,都可以通过这份资料深入了解Java面试的常见考点和难点,提升自己的技能和知识储备。 在内容上,这份资料对每个技术点都进行了深入浅出的讲解,并配有大量的实例和案例分析。此外,还提供了丰富的题目和答案,帮助您更好地掌握每个知识点的运用。 总的来说,《2024最强Java面试八股文》是一份不可多得的Java面试宝典,它系统地梳理了Java面试的核心知识点,并提供了一系列的实战技巧和经验。无论您是正在准备面试的求职者,还是希望深入了解Java技术的开发者,都可以从这份资料中受益匪浅。

  • 计算机视觉领域中基于CLIP模型的语言驱动双像素图像散焦去模糊网络

    内容概要:本文提出了一个名为LDP(Language-driven DP)的新框架,旨在利用预训练的对比语言-图像模型CLIP来估计双像素(DP)图像对的模糊图,从而实现高质量的无监督去模糊任务。研究解决了以往需要额外数据进行监督的问题,首次通过文本提示引导CLIP来估计模糊程度并应用自定义格式处理立体图像对,进一步提出了三种损失函数和一个先验注意力模块以确保恢复图像的质量。该方法通过广泛的实验验证,在标准测试集上取得了当前最优性能。 适合人群:计算机视觉研究人员以及从事深度学习和图像处理的技术人员。 使用场景及目标:用于从具有视差相关模糊问题的双像素传感器获取到的图片对恢复清晰的全焦点图片,尤其适用于单张拍摄情况下的图像修复工作。此外,该研究可以推动更多利用大规模预训练视觉语言模型应用于低级视觉任务的可能性。 其他说明:文中还提供了详细的实证比较和其他现有方法的优势分析,证明了所提出的架构能够提高去模糊效果的同时显著降低了推理时间。同时给出了模型的不同组件及其损失设置的消融实验细节与模型局限性的探讨,补充材料中有更深入的具体实验参数介绍及更多的定性和定量评估。

  • 【预定SCI2区】基于matlab被囊群算法TSA-BiTCN-BiGRU-Attention风电预测【含Matlab源码 11048期】.zip

    CSDN海神之光上传的全部代码均可运行,亲测可用,直接替换数据即可,适合小白; 1、代码压缩包内容 主函数:Main .m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,可私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开除Main.m的其他m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博主博客文章底部QQ名片; 4.1 CSDN博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

  • Simulink光伏储能VSG仿真模型:完美波形运行,实现光储一次调频、削峰填谷及直流母线电压控制功能,simulink仿真模型光伏储能VSG,加电容,正常运行,波形完美一一光储一次调频、储能削峰填谷

    Simulink光伏储能VSG仿真模型:完美波形运行,实现光储一次调频、削峰填谷及直流母线电压控制功能,simulink仿真模型光伏储能VSG,加电容,正常运行,波形完美一一光储一次调频、储能削峰填谷、 直流母线电压控制。 2018b及以上都可运行哈 ,simulink仿真;光伏储能;VSG;加电容;正常运行;波形完美;光储一次调频;储能削峰填谷;直流母线电压控制;2018b及以上版本。,Simulink光伏储能VSG模型:电容增强与优化调频调压功能解析

Global site tag (gtag.js) - Google Analytics