精华内容
下载资源
问答
  • 帮人的棒字怎么写
    千次阅读
    2021-07-28 03:18:05

    周记200字范文大全(通用15篇)

    时间真是转瞬即逝,一周又过去了,我们或多或少都学到了一些新东西,是时候仔细地写一篇周记了。在写之前,要先考虑好内容和结构喔!下面是小编为大家整理的周记200字范文大全(通用15篇),供大家参考借鉴,希望可以帮助到有需要的朋友。

    30cd529cffab0ec93ef90cbff214f982.png

    周记200字1

    在我很小的时候,我就有一个宏愿,就是长大成为一名‘明星’,而我现在已经长大了,就要努力去实现这个愿望。我是六年级的一名学生,学习状态为中等,但是,我一定要争取好好学习,为自己的愿望奋斗!

    我今年已经14岁了,马上就要升入初中了,在跨入初中的门槛前,我要好好复习小学的知识,把小学基础打好,在复习小学知识的同时,我也要预习初一的知识为自己的愿望努力奋斗吧!同时,我也要告诉大家喔初一的学习计划,就是:

    1、好好学习,一定要好好学习,不会的题问同学或老师,坚决要懂。

    2、不去网吧,坚决不去网吧,要不然就会惹上网瘾的。

    3、要多交一些朋友,坚决不和朋友吵架,骂架,要友好相处。

    以上就是我升入初中的打算,大家有不满的地方请告诉我,我会及时改正的。

    周记200字2

    一个星期过去了,这个星期我觉得过得既充实又快乐,因为在校园里有很多事情发生,而有一些事情是让我很难忘的。

    令我最难忘的是星期六的跳绳活动。学校邀请了著名的跳绳老师来学校教我们跳绳。首先,他给我们作了一个精彩的表演,然后他教给我们跳绳的正确姿势和花式。一个下午过去了,我们终于学会了正姿式和车轮跳了!这让我觉得特别自豪。

    让我最开心的是本周多了一节电脑课。星期五,我们班上公开课。公开课的前一天,班主任冯老师说:“如果公开课上得好,就奖励你们多上一节电脑课。”所以我们全班同学都在公开课上积极举手发言,认真回答老师的问题。上完课后,老师赞扬我们上课认真,所以就让我们多上了一节电脑课,我们开心得欢蹦乱跳。

    但有一件事让我觉得很遗憾,我们班的两个同学打架了。星期一下午,坐在我隔壁的同学何梓轩和何镇南不知什么缘故,两个人竟然打起架来。何镇南踩烂了何梓轩的笔,何梓轩一怒之下,把何镇南的桌子打烂了。我见状后,立刻跑上去加以阻止,他们才停止了打斗。真是有惊无险的一幕啊!真希望这种不开心的事再也不会发生在我们班上。因为要建立一个好的班集体,需要我们全班同学的团结和努力啊!

    总言而之,这是充实而又难忘的一周!

    周记200字3

    在妈妈那里,我懂得了一个字“爱”。

    记得小时候,有一年冬天的深夜,我生病了,那时我还住在上海,外面非常寒冷,又刮着大风,街道上几乎没有一个人。妈妈抱着我,冒着严寒,带我来到了医院。经过医生检查,我必须马上住院。进入病房,妈妈见我打了退烧针后,还是满脸通红,高烧不退,于是就不断地给我冷敷来降温,并用温水给我擦身,忙了一个晚上,我的体温终于降了下来。但妈妈还是不敢休息,不时观察我的变化。

    第二天早上,我打针时一直在哭,妈妈就在边上不断地鼓励我,要我做一个勇敢的孩子。当爸爸从外面赶到医院来看我时,妈妈才休息了一会儿。我偷偷地张开眼睛,看见妈妈坐在椅子上睡着了,我想妈妈一定是太累了吧。那时我真想对妈妈说:妈妈您辛苦了,好好休息一下吧。可是没过多久,妈妈又醒了,她帮我揉揉手,擦擦汗,细心地照顾着我。

    我的妈妈就是这样一个关心我,爱护我的好妈妈,我爱我的妈妈!

    周记200字4

    正月十五、十六,体育场有文艺汇演,早上,爸爸带着我去看演出,还没开始,广场上就聚集了很多人,简直是人山人海。

    演出开始了,第一个节目是舞狮表演。四个人装扮成两头狮子,他们一会儿跳上桌子,一会儿躺在地上翻滚,他们的动作非常可爱,就像动物园里真正的狮子。这个节目表演结束后,演员很累,他们头上都是汗,衣服也湿了。

    当他们听到台下的观众为他们热烈鼓掌的时候,他们高兴的笑了。

    我也为叔叔们鼓掌了,我还要向他们学习,练好舞蹈基本功,给大家表演好看的节目。

    周记200字5

    终于放寒假了。

    今天,我们全家去绿博园游玩。在绿博园大门口就看见摩天轮,我便急忙地跑过去排队买票,终于排到我们了,我跟妹妹好兴奋的坐到摩天轮上,转了三圈之后我们下来了。妹妹跟我说哥哥我们再去玩鬼屋,我说行便让妈妈赶紧买票,票买好了我们就进了鬼屋,刚进去妹妹就被吓哭了。我就在旁边哄她便扰乱她的视线之后,过了一会儿我们俩从鬼屋出来了,便跑到妈妈面前说:“好吓人呀!下次我们再也不来鬼屋了。天渐渐黑了,我们开心的离开了绿博园。

    周记200字6

    我在寒假期间读了一本世界名著,它的书名叫《苦儿流浪记》,作者是埃克多马洛。

    书中主人翁小雷米是一个聪明可爱的孤儿,可是他被凶恶的父亲卖给了流浪艺人维达理,从此以后,小雷米跟随主人走过巴黎的一个个城市,

    靠拉琴和表演杂耍为生。一路上他经历了无数艰难险阻,很多磨练,最终成为了一个勇敢、善良、能干的小男子汉,并实现了自己的理想。

    小雷米深深地打动了我,他是个孤儿,四处流浪,经历无数困难,但他永不放弃,依然保持勇敢乐观,寻找失散多年的家庭,他的精神很值得

    我学习。小雷米好可怜,他小小年纪就被迫流浪街头,而我,每天生活得那么开心,有爱我的爸爸妈妈,爷爷奶奶,我要珍惜,要更加努力的学习,像小雷米那样勇敢、善良、能干。

    周记200字7

    傍晚,天空中淅淅沥沥地下着细雨,我一个人趴在窗前盼望着妈妈快点来家。

    忽然,我看见一个熟悉的身影—妈妈。我迫不及待地站在门口等妈妈上楼。妈妈一进家对我说:“吉吉,你猜我给你带什么好吃的?”我一看是一个长方形的红色纸盒,盒子上写的全是英文。我想这东西一定很好吃,于是我迅速地从妈妈的手里抢了过来,小心翼翼地打开盒子,看见一个个穿着花衣的小圆球,我毫不留情地撕去它的花衣,一个褐色的小圆球滚进了我的嘴里,顿时浓香的巧克力味流进心肺,我想:这个巧克力真好吃啊!我连忙对妈妈说:“原来——是——巧克力。”妈妈又有意为难我问:“这个巧克力是什么牌子的。”我嘴一撅说:“我问“老师”去。”说完,我走进书房打开电脑,把英文输了进去,电脑显示出瑞士莲巧克力。我把答案告诉了妈妈。

    通过这件事,我体会到了妈妈的用心:少壮不努力,老大徒伤悲。我应该努力学习,将来长大回报妈妈。

    周记200字8

    如果你曾因为失败而放弃,请往下看。因为在现实生活中,目标往往不是最重要的。

    两个小兄弟决定从屋后挖一个洞,把地球给挖通。他们干的正欢时,两三个大孩子站在旁边看热闹:“你们俩在干什么呢?”“我们打算把地球给挖穿!”其中一个小兄弟兴奋地答道。大孩子一边笑一边说:“哈哈哈哈,把地球给挖穿,这是不可能实现的事。别在挖了!”

    安静了一会,一个小孩子拾起身边的一个小瓶子,他拿掉盖子,把里面各种各样不同的小虫子拿给大孩子们看。然后轻轻的、自信地说:“我们孙然不能把地球给挖通,可是我们在挖的时候发现了这些小虫子!”

    生活其实也是个挖掘的过程。

    周记200字9

    今天,爸爸和妈妈带我去澄江柑橘博览园采摘橘子,我一进橘园成片成片的橘树映入我的眼帘,微风一吹,好像一盏盏小灯笼在说:“你是不是来享受秋天的喜悦呀。”

    我迫不及待地摘了一个赶紧剥开尝了一口,哇,好甜,于是,我就赶紧拿起剪刀拿来箩筐剪起橘子来,爸爸和妈妈看着我累的筋疲力尽了,也赶快拿起剪刀箩筐和我一起摘橘子,橘子的形壮千姿百态的,有的像小灯笼,有的像柿子,还有的像娃娃的脸,躲在绿叶下正跟人们玩捉谜藏呢!

    爸爸还教我辩认橘子的品种,比如本地早、无核桔、早桔……今天不紧让我学到了很多知识,也让我体会到了摘橘子的开心和秋天丰收的喜悦!

    周记200字10

    今天,阳光灿烂,春光明媚,正是放风筝的好时光!

    我们一家人去沙湖生态园放风筝。

    首先,我把风筝铺平,放在地上。然后,用里面的一根棍子插在另一头。接着,用一个像方向盘一样的东西吧线连在风筝上。这样风筝就弄好了。

    可以开始放风筝了,爸爸先把风筝举起来,迎着风边跑边放线,风筝一会儿就飞上去了。

    风筝越飞越高,越飞越远,象一条遨游在天上的鲤鱼。线用完了,爸爸就让我来拉着继续放。

    放风筝真开心!

    周记200字11

    今天,我跟我幼儿园的`一位小朋友去我们的秘密基地玩,由于跑得太快而摔了一跤。我的嘴皮摔破了,上嘴唇肿了。我哭了起来,小朋友过来劝我。过了一会儿,我不疼了,又玩了起来。妈妈过来接我,问我秘密基地在哪儿,怎么摔得这么厉害,手腕部分都肿了。我说:是秘密基地,当然不能告诉你了。

    玩上去参加小朋友的生日,我不好意思,觉得自己好丑,一进门就把嘴巴闭牢了,小朋友都围过来问我怎么了?大家都很关心我,我喜欢一起跟我上幼儿园的那些小朋友,我们玩的很开心。

    周记200字12

    星期天早晨,爸爸去买了一副羽毛球拍。我对爸爸说:“我又不会打羽毛球,为什么还买羽毛球。”爸爸说“不会可以学啊,我可以教你,只要你用心学,什么都可以学会的。”学习羽毛球很简单,爸爸给我说了几个注意事项和示范了几个动作。我照着爸爸教我的动作拍了几次后就渐渐熟练起来了。

    我们两个你来我往的打起了羽毛球,有一次我发过去的球有点歪,爸爸没有接住,我就哈哈哈哈地大笑起来。我们拍啊拍,羽毛球就像一只白鸽在空中飞舞,我们打了好一会儿就结束了。

    通过这次打羽毛球练习,我才知道学习和做任何事情都和打羽毛球一样,只要用心去学并付出努力都可以学会本领的。

    周记200字13

    今天晚上妈妈特别忙,我就对妈妈说:“我来帮妈妈叠衣服吧!”妈妈听了,高兴地说:“好呀。”说完,我就开始行动。

    我拿起一件衣服,先把两只袖子往中间折,又把衣服的下摆往上折,就这样,一件衣服被我折好了。接着我拿起一条裤子,先把两条裤腿对折,再把裤脚往上折,哈哈,一条裤子又被我折好了。剩下的袜子就简单了,我飞快地动起手来。

    不一会儿,我就全部折完了,妈妈看完我折的衣服,连声说:“谢谢,你真棒!”

    周记200字14

    7月1日回到了东北这个可爱、凉快的家乡,心里别提有多高兴。因为成绩考得不错,所以我和姥爷7月6日去了长春游玩。

    到了长春车站,整个站令我大吃一惊:长春车站变样了,真的变样了。我仔仔细细地将车站打量一番,车站变美了。长春车站是一幢既高大又干净的楼,前面是八只粗壮的大柱子,后面是火车走的铁道和地下通道。要是站在山上望长春车站,可是不一般的美!

    不光这所车站,后面还有好多景点在等着你呢!俗话说:看到的没有听到的美。走,我来带你参观去!

    周记200字15

    今天是个好日子,因为我要分房间了。妈妈给我准备了一张床,矮矮的、大大的。

    早上10点30分的时候,我和爸爸去超市买了一顶粉红色的蚊帐和一张草席。回到家后,妈妈铺草席,我和爸爸挂蚊帐,我们齐心协力,终于把我的床铺好了。我迫不及待地躺在床上,哇!好舒服啊!

    可是,我觉得房间有点空荡荡的,我想了想,就把我的小书桌搬进来,把小闹钟挂在墙上,还把我的一些画帖在墙上。我的房间一下子就变得又整洁又漂亮。妈妈说:“你分房间,就说明你长大了,以后的生活就要独立,不能依赖我们了。”我点了点头。

    我爱我的房间。

    更多相关内容
  • 在人工智能的江湖,常听言:得框架者,得天下。 多年以前,一面画着大G的大旗在高处飘扬,美国谷歌公司的深度学习框架占据大半江山。万万没有想到,一场大风暴来了。 2018 年,脸书公司“同款”对标产品把一款...

    2021-03-01 14:21:19

    搞深度学习框架的那帮人,不是疯子,就是骗子

    世间有一种软件,名叫“深度学习框架”。

    在人工智能的江湖,常听人言:得框架者,得天下。

    多年以前,一面画着大G的大旗在高处飘扬,美国谷歌公司的深度学习框架占据大半江山。万万没有想到,一场大风暴来了。

    2018 年,脸书公司“同款”对标产品把一款前辈产品吸纳进来,联剑并肩,威力大增。一年后,火力全开,专拣敌人的罅隙进攻。连冲数剑,杀开一个缺口,有守有攻,看看就可闯出。放眼学术圈,更是独领风骚,顶级学术会议的胜利快报像雪片一样飞来。

    小心低头,王冠易掉,谷歌框架的王者时代,结束了。

    历史总是吊诡,一些无名之处会发生极为有名的战役。战事残酷而隐秘,高深晦涩的技术仿佛咒语,牢牢挡住人们的视线。

    美国白宫《2019年国家人工智能研发战略规划》报告中,美国将中国视为人工智能主要对手,进行了深刻观察。

    “中国人工智能发展势头很猛。” 这话猛一听,真让人高兴。

    后半句是个打击:“中国人工智能缺点亦十分明显,硬件、算法、人才……人工智能框架创新能力薄弱。”

    “硬件” “人才”……这题我会,这题我会,“框架”是个啥?

    假如人工智能深度学习是太平洋上的一个岛屿,算法是岛上茂盛的植被,框架和芯片则是地质结构,算法建在框架和芯片之上。

    深度学习框架,头顶两个光环亮闪闪,第一个,基础软件。

    几乎所有的深度学习开发者,都要用深度学习框架。

    几乎所有的深度学习算法和应用,都是用其实现的。

    作为一种复杂基础软件,有这样一条原则:极少数人“造”轮子,大部分人“用”轮子。

    框架研发门槛高不可攀,本质上,这类产品是大型科技企业才“配”拥有的基础设施,小门小户造不起。

    多说一句,打败围棋大师李世石的人工智能阿法狗(AlphaGo)听过吧,框架也是其背后的底层技术。

    谷歌科学家的凡尔赛是:“我们让阿法狗更顺畅”。

     

    1上半场:美国科技大厂的豪门恩怨

    简单地说,深度学习框架=深度学习操作系统。

    世间最流行的两个深度学习框架,谷歌公司的TensorFlow和脸书公司的PyTorch。

    开发者压力山大,

    需要“精通”这两个,

    或至少“熟练”其中一个,

    甚至,“辅修”第三个框架,“选修”第四个。

    谷歌与脸书,作为美国科技企业,其框架产品的流行度,像极了可口可乐和百事可乐。

    快乐肥宅水统治世界,兵家必争之地必属枭雄。大型科技企业想尽一切办法取得技术上的领先优势,深度学习框架不会错过,也无法绕过。

    算法突破、数据爆发、算力增长的“铁人三项”支撑了AI的浪潮,唯一能将“铁人”整合的系统软件,是深度学习框架。

    它好比底座,对下,完成对底层硬件的调度;对上,支持模型搭建。

    人工智能的一堆新玩(算)意(法):人脸识别、图像分类、图像检测与分割、语音识别、广告推荐、GAN、强化学习等等,被封装在软件框架里。

    封装,不是封印。

    孙悟空冲着框架大喊:“人工智能,叫你一声,敢答应吗?”

    Siri(用机械女声回答):穿豹纹超短裙的那位,你有事找我?

    一般来说,只有超大型科技企业才能支撑“操作系统”的开发。

    深度学习的“操作系统”萌芽于高等学府,但早期工业雏形出现在美国科技豪门,是大公司竞争的舞台,也是全球计算机技术精英群体,最精锐部队的角逐。

    使用全国通用感叹词:“卧槽,深度学习框架是硬科技。”

    把全球AI顶级精英俱乐部的会员分成两类:一类是原创AI算法的发明者, 一类是AI框架的发明者。

    前一类是加钱阅读的部分,后一类是本文的重点。

    请大家记住这些名字,因为这些“精神小伙”,对深度学习框架的发展至关重要。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    现任阿里巴巴技术副总裁贾扬清,浙江绍兴人,从初中三年级开始接触电脑,他一直觉得自己学编程挺晚的。

    2002年是他高考那一年,浙江省是高考界的领跑者,清华大学计算机系的分数线很高,他去了清华自动化系。

    在科学界,瑞士是物理和数学领域的领跑者。也在2002年,瑞士戴尔莫尔感知人工智能(Idiap)研究所诞生了第一个机器学习库Torch。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    欧洲最高山脉阿尔卑斯山的雪顶千年不化,山脚下的瑞士名城马蒂尼(Martigny),既是登山爱好者的天堂,又是葡萄酒产区。

    这是个做学术的好地方,自1991年以来,这里的研究所就是全球人工智能和认知智能领域的领导者之一。

    机器学习库Torch,出自“葡萄酒产区”研究所的一份研究报告(三位作者分别是:Ronan Collobert、Samy Bengio、Johnny Mariéthoz)。

    其中一位作者姓本吉奥(Bengio),没错,这位眉毛粗粗的科学家,就是深度学习三巨头之一,约舒亚·本吉奥(Yoshua Bengio)的兄弟。

    2007年他跳槽去了谷歌。

    Torch意为火把,成为框架旷野的第一颗火种。

    “库”(Library)是一系列事先编写好的代码集合,在编程中调用,可以减少重复工作。

    加拿大蒙特利尔大学的深度学习框架的开发,始于2007年,Theano是行业祖师爷。

    框架和图灵奖获得者颇有渊源,约舒亚·本吉奥(Yoshua Bengio)和伊恩·古德费洛(Ian Goodfellow)都有参与Theano。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    库和框架的不同之处,在于境界。

    库是兵器库,框架则是一套武林绝学的世界观,程序员在这个世界观的约束下去练(编)拳(程)法(序),结果被框架所调用。框架接管了程序的主控制流。

    反正,框架比库厉害多了。

    有了框架,才能做到只关注算法的原理和逻辑,不用去费事搞定底层系统、工程的事。生命短暂,都想走捷径。话不能这么说,都996了,生产队里的驴也得歇歇。

    转眼间,贾扬清已经在美国加州大学伯克利分校攻读博士学位。也是在此期间,他开启了计算机视觉的相关研究。

    那时候,他常被一个问题困扰:怎样训练和设计深度学习的网络?为此,贾扬清想造一个通用工具。

    著名的Caffe框架的发音和“咖啡”相似,是“快速特征提取的卷积框架”论文的英文简称。巧合的是,这个框架像咖啡一样流行。

    这是贾扬清第一个C++项目,多年以后,他在阿里巴巴回忆:“最开始的时候没有测试,代码纠错(Debug)成了最痛苦的事。”

    2013年的Caffe框架是他的成名之作。在工业场景的计算机视觉系统上,Caffe 稳健快速,是无可争议的王者。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    这一年,Parameter Server(参数服务器)的两位著名教授走向台前,邢波(Eric Xing)教授和Alex Smola教授,现在两位均在美国卡内基梅隆大学(CMU)任教。

    参数服务器是个编程框架,也支持其他AI算法,对深度学习框架有重要影响。

    高校实验室善于技术创新,深度学习框架的很多精髓创意源于此地。但是,深度学习框架复杂性高、工程量极大,长期负责复杂产品,高校并不擅长。

    事实也证明,多年后,高校出生的深度学习框架,都以某种方式“进入”企业,或者被企业赶超了。

    嗅觉敏锐者,业已出发。

    2015年11月,TensorFlow开源,由谷歌大脑团队开发。谷歌的搜索、油管、广告、地图、街景和翻译的背后,都有其身影。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    谷歌开源AI产品备受瞩目。若论起名的原因,TensorFlow直译,张量(tensor)在图中流动(flow)。由此也可获知,数据流图是框架的重要技术。

    再往细说,数据流图由算子组成,算子又分为大算子和小算子。Caffe是大算子抽象,TensorFlow是小算子抽象。小算子好处是灵活,坏处是性能优化难。

    TensorFlow原创者之一是谷歌天才科学家,杰夫·迪恩(Jeff Dean)。

    为什么说他是天才?

    赞美之词就免了。在2000年下半年的时候,Jeff Dean的代码速度突然激增了40倍,原因是他把自己的键盘升级到了USB 2.0。编译器从来不会给Jeff Dean警告,但Jeff Dean会警告编译器。

    笔者承认,这确实是两个段子,出处无考。

    2015 年是一个重要的年份,何恺明等人的研究成果,突破了边界,在准确率上再创新高,风头一时无二。

    谷歌AI研究员弗朗索瓦·乔莱特(Francois Chollet)几乎是独自完成了著名的Keras 框架的开发,为谷歌再添一条护城河,大有“千秋万代,一统江湖”的势头。

    这时候,喊一嗓子“深度学习是下一个重大技术趋势”,已经没有压倒性的反对意见了。

    美国西雅图素有“阿拉斯加门户”之称,微软公司总部位于西雅图卫星城,从那里开车13个小时就能到达谷歌公司总部所在地山景城。在AI的跑道上,很多人在追赶谷歌,但是,微软既没有好车,也没有弯道,压力大了,方向盘也能捏碎。

    按理说,背靠微软的产品本应有个好前途,框架却都没有流行起来。

    英文单词Minerva的意思是“智慧女神”,这是微软亚研院一个孵化项目的名字,由当时的副院长张峥发起,项目组成员有纽约大学王敏捷和北京大学肖天骏。

    现在张峥在亚马逊上海AI研究院做院长。两名大将也随之前往,现在均是张院长麾下主力。

    后来,就没有后来了。开源(Github)给女神画上了句号。

    2016年,从先后关系上讲,CNTK(Cognitive Toolkit)伸手接过女神的接力棒,可惜魔障难消,用的人少,没有推广开,于2019年停止维护。

    GitHub上的悼词是:“在这个版本之后,没有新功能开发的计划。”

    这意味着,微软已经放弃了CNTK。

    两次前车之鉴,微软仍没有认输的打算。

    因为深知框架的重要性,也因为微软的电脑里,绝不会长期使用贴着别人家logo的AI工具。

    2016年,贾扬清从谷歌TensorFlow团队离职,跳槽到了Facebook公司。与谷歌挥手道别,四载光阴(实习两年,工作两年),往事依稀,他的内心充满感怀。

    西雅图作为美国的超一线城市,华盛顿大学是城市招牌之一,华人武术宗师李小龙就毕业于此。“天才少年”陈天奇也在这里取得了计算机博士学位。

    陈天奇在AI圈的名气,不比李小龙在武术界低,且都是少年成名。

    陈天奇读博士的第二年,一个叫做MXNet的项目开始了,这是一个名牌大学联合学术项目。

    仅仅一年时间里,就做出了完整的架构。团队中还有一位闻名遐迩的大神,李沐(现任亚马逊公司资深主任科学家,principal scientist)。

    2016年5月,MXNet开源,浓缩了当时的精华,合并了几个原来有的项目,陈天奇cxxnet、参数服务器、智慧女神、颜水成学生林敏的purine2。

    所以,MXNet,读作“mixnet”,mix是中文“混合”之意。

    可巧了,从华盛顿大学到亚马逊公司全球总部不到6公里,开车只消10分钟。总部大楼抱着两个“温室大球”坐落于市中心。可能是近水楼台先得月,这次亚马逊公司火眼金睛,行动迅速。2017年9月,MXNe被亚马逊选为官方开源平台。

    江山代有才人出,该退休时就退休。同一年,祖师爷Theano官宣退休。

    这时候,贾扬清借鉴谷歌TensorFlow框架里面的一些新思想,实现了一个全新的开源Caffe2。三十而立的他,成长为遍历世界级产品的第一高手。

    谷歌TensorFlow在人间潇洒走一回。未曾想一场大风暴正在酝酿。

    2018 年,PyTorch接纳Caffe2后,意外崛起,上演令谷歌框架王冠落地的戏剧性一幕。

    易用性确实可以抢客户,但谷歌没有想到脸书抢了这么多。

    后来者确实可以居上,但谷歌没有想到脸书仅用如此短的时间。

    改旗易帜,有人哗然,有人唏嘘。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    谷歌出发最早,为何没有独坐钓鱼台?为什么是脸书抢了市场?

    谷歌野心非常大,初期想做很大很全的工具。虽然完备性很强,但是,系统过度复杂。虽然以底层操作为主,有很多基础的功能,但是这些功能没能封装得很好,需要开发者自己解决(定义),手动工作过多。

    三个AI开发者凑在一起,花生配酒,吐槽谷歌TensorFlow,十有八九。

    甲有点激动,说:“实在太难用了,想骂脏话。”

    乙表示赞同,说:“简直就是一个缝合怪。”

    “一座屎山,还要往屎上堆屎。”丙说完,深埋头,叹口气。

    虽然TensorFlow可直接使用天下排名第一又易上手的Python语言来编写程序,算子库丰富,TPU加速,但是,一些个性化规定琐碎,新概念层出不穷,开发者要视其为一种新的编程语言来学习。

    再者,系统非常复杂,代码又长又臭,难以维护。更糟的是,API很不稳定,易变脸。API好比电脑键盘,键盘上的字母位置天天变,谁受得了?你想要一个活着的祖宗吗?

    仅仅是丢市场还不够惨,PyTorch框架带火了背后的技术(动态执行等),脸书开始左右技术趋势。

    谷歌仰天长啸,潸然泪下,口中默念:“万万没有想到。”

    命运像水车的轮子一样旋转,有时高,有时低,而亚马逊公司的MXNet从来没高过。

    知乎上有两篇非常火的高赞帖,可一窥其端倪。

    李沐:《为什么强大的MXNet一直火不起来?》。

    贾扬清:《如何看待亚马逊 AI 李沐团队大批人员离职?》。

    谈起亚马逊和MXNet框架的缘分,就不得不提起一位美国卡内基梅隆大学的高人,Alex Smola教授,他也是李沐在CMU的博士导师。

    2016年7月,Alex Smola教授从CMU重返工业界,加入亚马逊AWS担任副总裁级别的科学家(职级为Distinguished Scientist)。大半年后,2017年3月,李沐加入AWS,直接向老师Alex Smola汇报。

    师徒同框,双手比V。

    此时,巨头已整装列位,兵马齐发。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    微软岂能袖手旁观,微软在智慧女神和CNTK两次滑铁卢之后,依然斗志昂扬准备第三次入局。

    这次,微软思路清奇地设计了ONNX(全称Open Neural Network Exchange),一种开放式深度学习神经网络模型的格式,用于统一模型格式标准。

    ONNX是脸书和微软合作力推的,贾扬清也是发起者之一,目标剑指“标准和生态”。

    说白了,一个PyTorch模型可以被导出ONNX文件格式的模型。

    不止于此,随后,微软基于ONNX这个桥梁研发了一个推理用的ONNX Runtime框架,低调地在2018年最后一个月开源。

    想做“标准”,得大家伙都同意。

    ONNX没成为标准,若论原因,可能是ONNX还做得不够好吧。

    ONNX Runtime框架的“新功能”暴露了巨头之间的动态竞争关系。

    这一次,微软站队脸书,给Pytorch机器学习库做了几个 “好用的部件”。

    若论其中一个原因,可能是微软和脸书没有云上的竞争关系,这几年脸书公司的定位依然还是互联网公司,没有发展云计算。

    亚马逊云(AWS)、谷歌云、微软云则斗红了眼。

    第三次进军框架,微软的策略是,强攻不下,组队打怪。若有一日,Onnx Runtime 框架有希望挑战Pytorch框架,肯定调转火力,支持自家。

    真正的竞争激烈,不是玩家多,而是高手多。短短几年之内,几座技术巅峰,拔地而起,各有各的精绝。

    其一,谷歌和亚马逊是计算图的拥趸。两者都以更高的、令人赞叹的工业级工程质量把计算图抽象推向新高度,把表达能力推向新的里程碑。

    其二,脸书公司在计算过程中没有计算图的概念。但在解决易用性上,超常发挥。

    谷歌皇冠跌落,给后来者“跌出”希望,留给中国队的时间不多了。

     

    2下半场:中国队的出征

    2014年的某一天,北京海淀区丹棱街5号接待了一位特殊的客人。

    这位来自美国CMU的教授,名叫邢波,此时任微软亚研院顾问一职,他擅长的领域包括大规模计算系统。他也是AI科学家俱乐部的白(ding)金(ji)会(da)员(lao)。

    恰在此时,微软亚研院副院长马维英(现任清华大学智能产业研究院讲席教授、首席科学家)找到一位研究员,名叫袁进辉,他是清华大学计算机专业的博士,师从张钹院士。

    知识使人年轻,很多科学家,年逾不惑,双肩包+步行,背影仍像学生。而袁进辉却头发花白,笑容谦和,像是在校园里散步的退休教授,其实他是1981年的。

    马维英副院长和袁进辉谈起,谷歌较先起步,已将大规模主题模型的训练系统技术,应用到谷歌广告系统和推荐系统的关键组件中。邢波教授近期既然到访北京,那不妨合作。

    于是,邢波教授团队和袁进辉团队双剑合璧。这场合作的成果,被表扬了。主管全球研究院的微软副总裁周以真女士评之为该年度看到的最令人激动的成果,不过这是后话。

    那时候的动力,一方面来源于超过谷歌,直道超,没有弯道。另一方面,业界有多位知名科学家和资深工程师,已经在同一问题上酝酿已久。难度可想而知,条件却捉襟见肘。没有可供使用的集群,没有工程师团队的支持。

    按打游戏的说法,微软想上分,那就要看一下配置。推算一下可知,即使是当时最先进的算法,在当时的硬件环境中训练目标规模的模型,至少要半年时间。

    再看一下,双方阵容。

    提起邢波教授的团队,恐怕AI学术圈无人不知,其本人位列论文发表贡献第一(2018),其学生很多已是名校教授,每年发表的论文数量,源源不断地为CMU名列全球大学计算机科学与人工智能的排名第一“贡献力量”。

    “微软代表队”是袁进辉研究员,还有一个实习生高飞。

    这个条件,这个目标,看了只想眯眼说“呵呵”。

    美国宾州匹茨堡和中国北京,时差十几个小时。袁进辉后来回忆:一年多的时间里,每天邮件不断,每周好几次电话会议,技术难题不讨论透彻不罢休。只要足够幸运,就会在错误的道路上迅速挨揍,只要高手够多,不足之处就不会被放过……马维英和刘铁岩两位大佬,羽扇纶巾,幕后帷幄。

    项目结束的时候,2014年已近尾声。大家伙的心声是:“缺少任何一个人,结果都不是大家看到的样子。”

    那一次,袁进辉为破坏式创新的威力,窒息。

    这次合作,成果是LightLDA。它的算法结果是一流的,系统实现是一流的,仅用数十台服务器,完成之前成千上万台服务器才能做的事,所以得到周以真女士的高度评价。

    民(zhi)间(hu)评价:“要我说,LightLDA那是真的正经贡献,又smart,又是解决关键问题,又真work,正经把Topic Modeling(主题模型)在大数据时代的潜力大大地提高了。”

    当时,北京大学计算机科学技术系网络与信息系统研究所,研究分布式系统的肖臻教授也给与LightLDA相当的肯定。这事,被肖臻的学生以敬仰袁进辉大神事迹的口吻在知乎讲过。

    而今复盘,大势的端倪早已显露,大数据、大模型、大型计算架构设计呼之欲出。而这个领域的学者,普遍在2018年才意识到这个问题的重要性。

    微软亚研院不愧为AI黄埔军校,技术前瞻性极强,但是,复杂基础软件的成功,不是仅靠“单刀赴会”。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    大公司必胜,那是夸海口。

    大公司必争,才是真灵验。

    坐标北京西二旗,百度大厦和百度科技园。

    技术大牛背景的李彦宏,牵着搜索入口的现金牛,依着“牛脾气”治理百度,他看不上云计算,这倒让阿里巴巴笑了。

    其实,看不上云计算的技术大佬不止一位,自由开源软件GNU/Linux的鼻祖理查德·斯托曼(Richard Stallman)也多次在公开场合“怼”云计算。

    巧合的是,他俩观点出奇地一致:云计算不是技术创新,而是一种商业模式创新。

    李彦宏睥睨云计算,却对人工智能,满眼小星星。

    百度深度学习研究院(IDL)在人工智能的江湖里,是桃源仙境般的存在,处处大神,遍地高手。高水平科学家、研究人员、工程师密度之大,令人惊叹,感觉连保安都要会编程才配在门口刷工作证。

    昔日盛景,已成绝响。

    时间拉回到2013年,百度第一位T11徐伟,同时也是百度深度学习框架PaddlePaddle的原创者和奠基人。

    每一家科技巨头的深度学习框架的首位指挥官,均非等闲之辈。徐伟也是Facebook早期研究员,Facebook产品矩阵丰富,他负责大规模推荐平台,在多个产品背后显神功。

    可能是有法律文件约束,百度大神科学家的离职,大多不公开原因。徐伟离职加盟地平线,他将手中的接力棒交给了另一位神级技术大牛,撸码一绝的王益。

    见过王益的人会说一个词,“聪明绝顶”,重音在后面两个字上。

    王益在知乎谦虚地自称“四十岁老程序员”,言谈之间一副老技术专家的低调本色。他在加入百度之前曾任谷歌研究员,是少见的“APAC创新奖”获得者(参与开发一个分布式机器学习的工具)。王益是清华大学机器学习和人工智能博士,师从清华大学周立柱教授。

    有一次在知乎分享程序员成长经验,他轻描淡写地说了一句:“我有一位恩师,徐伟。”

    细节总是让人容易忽略,早年,王益曾向徐伟抱怨:“某某团队好像就是想用他们自己研发的工具,不用PaddlePaddle?”

    后来,王益在回复一位网友跟帖时解释当时这一问题存在的合理性:“设计PaddlePaddle是技术换代的时候,步子大,当时来不及优化用户体验,不愿意用确实有道理。离开后,后来人持续优化了体验。内部组织结构调整也促进了新技术的接纳。”

    这也印证了一位百度匿名AIG离职科学家高管对笔者的独家透露:“百度内部曾经有两个类似的产品,最后敲定PaddlePaddle的人,是陆奇。”

    了解此事的人不多,也正因此,采访前夕,这位科学家高管仍在反复向笔者强调——“请务给我匿名”。

    百度最早出发,生态建设也最早起步。

    2017年年末,百度市场部的朋友找笔者交(chi)流(fan),给PaddlePaddle出谋划策。那时候,开源框架的运营和推广已经全面拉开:北航软件学院的教材出版、顶级学术会议模型复现、高校宣讲……

    据说,陆奇离职前,仍然紧盯PaddlePaddle的进展。

    一山行尽,一山青。框架的玩家,不止科技大厂。

    人工智能独角兽旷视科技是从2014年起内部开始研发框架。在2021年的采访中,旷视天元的负责人田忠博告诉笔者:“原因很简单,仅以当时的开源框架,没有办法真正做好科研,才会有自己做深度学习框架的想法。”

    举一例,就能说明问题。

    旷视科技有一篇ShuffleNet的学术论文,仅用Caffe提供的“工具”,永远也探索不到ShuffleNet这件事情的可能性。由此看来,旷视科技早已参悟,研究和工程的共振,离不开强大框架的支持。

    百度PaddlePaddle开源时间点是在2016 年8月。现在看来,这是历史性的一刻,尤其在中美摩擦的历史背景下回看,更不敢皱眉设想,一旦美国忌惮中国的人工智能发展势头,把深度学习框架彻底掐死。

    百度的出征,代表着中国队上场了,标志着中国科技企业参与到人工智能最残酷的战役之中。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    2017年,AI盛极一时,独角兽频现,融资快讯爆炸。而PaddlePaddle作为国内唯一的开源深度学习框架,此后两年多,都是孤家寡人。

    2018年7月,百度成立深度学习技术平台部,由2011年就入职百度的马艳军总负责。

    毕竟是国产框架,2019年,百度PaddlePaddle有了中文名,名叫“飞桨”。国外产品连个中文名都懒得起。

    零的突破之后,新问题是,“用工业级的质量,把创新在框架上实现出来”。

    2019年2月,一流科技获得千万级Pre-A轮投资,袁进辉是创始人兼CEO。此事之后,才有些小道消息传出,早在2017年初,快手创始人宿华就投了一流科技,天使轮。

    “小伙子睡凉炕,全凭火气壮。”一家只有几十人团队的初创公司也来做复杂基础软件。投资人一脸懵逼地进来,一脸懵逼地离开。

    谁都会挑用起来顺手的锤子。框架在一家公司内部很难统一。

    百度内部“军令如山”,必须统一使用飞桨。

    旷视科技内部可以用任何开源框架,员工中自发使用天元框架者居多。

    微软亚研院的情况是:很多工程实现是实习生完成,干活时会让同学们继续用熟悉的框架干活,很难强行统一用CNTK。

    互联网科技公司大多是软件起家,华为则被戏称为“泥腿子们”终于“洗干净脚进城”的硬件厂商。是啥不重要,能打就行。所以,华为要拿出来单聊。

    华为在开源软件世界里,风评不高,前脚还有:“鸿蒙失火,殃及池鱼” (禁止谐音梗,扣钱)。

    华为MindSpore的行动颇为迅速,可惜,在群众情绪上,被鸿蒙拖了后腿。

    2018年10月10日,上海。华为全联接大会上,肯德基外卖全家桶套餐,不对,讲错了,是AI战略与全栈全场景AI解决方案。这是华为高层首次提起MindSpore这个事儿。

    2019年,10月15日,14点02分,王益在网上突然发帖问了一句,这“开源框架”什么时候开源啊?有匿名采访者告诉笔者:“贾扬清回了一句,‘Show me the code’。”笔者没有找到原文或者截图。

    按工作流程,华为MindSpore官方进驻知乎,先发了一个“Read me文档”(翻译为“阅读指南文件”)。结果,人在家中坐,祸从天上来,很多人误以为“开源”只有“Read me”而已,热度直接飞起。

    最息事宁人的评论:“沸腾就完事了,想那么多干嘛。”

    最佳画面感评论:“站在马里亚纳海沟里挥舞道德的内裤。”

    神评论:“按揭开源。”

    网友的才华,从手机屏幕里喷出来。

    哪怕华为员工看到这些评论,也笑出了猪叫,细一想,要克制,便在暗地里捂嘴笑。

    一位老牌厂商高管在采访时,告诉笔者:“华为不了解生态系统对软件的影响。这就是为什么他们在发布手机操作系统时,没有考虑如何构建生态系统。”受访人要求笔者匿名。

    这一评价,一针扎在要害上。

    外国框架并不成熟,也不完美,这也是国产框架参战的部分原因。

    有人发问:“为什么要再做一个框架?”

    华为内部也有人扪心自问:“MindSpore解决的特色问题到底是什么?”

    可能是2020年正式开源前夕,

    可能是华为中央软件院总架构师金雪锋博士、算法科学家于璠博士、开源社区运营团队负责人黄之鹏等人第一次“齐聚”会议室,

    可能是一场“元老会”。

    笔者了解到,在华为内部组织结构中,MindSpore属于昇腾产品团队,也归属于计算产品线。这是一个和华为“小云”同级别的BU。

    匿名采访者透露,MindSpore在内部也是要承接业务部门需求的。

    MindSpore再早之前的研发时间线不得而知,因为“事关”华为最敏感的“部(xin)位(pian)”。

    细细翻阅三位科学家的公开观点,

    第一位,华为MindSpore首席架构师金雪锋博士。

    第二位,一流科技创始人袁进辉博士。

    第三位,谷歌公司Waymo自动驾驶汽车感知和规划任务机器学习平台资深研发工程师、阿帕奇基金会MXNet项目委员会委员、Horovod(是Uber开源的一个深度学习工具)技术委员会委员袁林博士。

    他们共同认为:“市场需求没有很好地满足,技术没有收敛,创新还有空间。”

    国外框架出发时,广阔天地,大有可为,国产框架正好相反。好摘的果实都已被摘走,只剩高高树顶上的,还有那零散摔落在地的。

    国货当自强,同情分不要也罢。

    国产深度学习框架的建设者,藏好后退的发际线,在时代的噪音里,纵身一跃。

    2020年,国产深度学习框架井喷。

    3月20日,清华大学计图(Jittor)。

    3月25日,旷视科技天元(MegEngine) 。

    3月28日,华为MindSpore。

    7月31日,一流科技OneFlow。

    四家国产,同期开源。五家国产,旌旗列阵。这一年最有可能被追认为国产深度学习框架的“元年”。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    守旧的经验是,既然国外开源了,就抓紧学。既然人家成了事实工业标准,就尽力参与。总是慢了好几拍,Linux这轮就是这样。

    引用某游戏厂商的经典台词是:“别催了,在抄了,在抄了。”

    可惜竞争从来不是游戏。

    深度学习框架的台词是:“不能照抄,不能舔狗,舔到最后,一无所有。”

    2020年,国产框架在技术上不是单纯的跟随者角色了,也有很多创新点可圈可点。

    飞桨作为国内最早的开源框架,模型库是最丰富的。以模型库的形式沉淀成深度学习框架生态的一部分,生态也起步早。

    古人云:“不谋全局者,不足以谋一域” 。有匿名采访者认为:“华为是国内投入框架研发最坚定的大公司。”

    可以观察到,华为剑指全栈AI战略,投入非常大。硬件算子库、基础软件、平台、产业基金、联合项目、标准、论文专利、人才,几乎所有的地方都发狠力。

    华为内部技术高管(笔者被反复要求匿名)告诉笔者:“大厂发展深度学习框架一定不是为了卖钱,而为了发展生态。华为发展深度学习框架,一方面是自主可控,一方面是坚定地发展AI全栈能力。Mindspore并没有拘泥于自家的芯片,不能仅仅视为一款产品,而是战略级的平台,这是明确公开说的。”

    翻看所有的宣传稿件,不难总结出,华为有全场景,端边云协同,比如,华为自己有手机业务,方便对硬件做指令级优化。

    但是,华为做的远不止这些。

    第一,在拿MindSpore 为抓手,来解决深度学习之外的、以前在超算领域关注的一些计算任务(科学计算)。其它框架虽然也有这个目标,但华为想到了,也做到了。

    第二,AI有个公开的槽点,即被黑盒问题所累。然而,牵扯到AI安全的问题,既基础,又前沿,搞得人少,困难多。对于基础软件来说,又格外重要。

    华为金雪锋博士有一个表述:“按DARPA(美国国防部先进研究项目局)的说法,可解释AI的目的,就是要解决用户面对模型黑盒遇到的问题,从而实现:用户知道AI系统为什么这样做,也知道AI系统为什么不这样做,用户知道AI系统为什么做错了。

    这个问题被华为关注,无疑提高了国产框架段位。你在研究拳法,我在研究拳法背后的哲学根基。

    华为MindSpore开源后,很多质疑的声音消失了,酝酿了半天的道德制高点没有骂出来,憋得怪难受。

    不过,有些批评,华为确实该虚心接受,不是外人,都能过去。

     

    3如何竞争?

    滔滔江水,浪奔浪涌,摩尔定律却日渐消失于地表。

    需要在硬件层面对AI进行优化浮出水面,因为在微观层面的编译器优化,需要和硬件厂商合作。这是华为的独家优势。在所有框架公司里,唯独华为有芯片。

    官宣用语:“用昇腾+MindSpore,构建华为数字底座”。

    华为被特朗普轰炸了几轮,印象十分深刻。

    在独家硬件的加持下,MindSpore的名场面是,有开发者感受到“快到飞起”的兴奋。

    这也不是唯一的路,因为深度学习编译器也登上了舞台。巧不巧,这又是一个底层技术。

    所以说,深度学习框架门槛高不可攀,算法、底层硬件、操作系统、分布式系统、编译器,一个都不能少。

    TVM编译器在2017 年开源,能够在任何硬件后端上有效优化和运行计算,可作为框架的后端。学术方面,进展也迅速,比如“如何利用TVM直接参与硬件设计过程的迭代,使得加速器设计在一开始的时候就可以直接获得软件的支持和目标的具体反馈”。

    TVM的背后是陈天奇团队,与其竞争的还是中国人民的老朋友,谷歌(MLIR)。

    国产框架,万箭齐发之势。

    创业公司代表队唯一的队员,一流科技袁进辉博士则放出豪言:“要做出世界上速度最快的。”

    AI科学家的豪言壮语,比起罗永浩的那句“收购不可避免走向衰落的苹果公司,并复兴它”,也没克制。

    天下武功唯快不破。

    他认为,第一,在分布式深度学习里,计算仅仅是一个方面,多个GPU上任务的协同需要频繁地把数据在GPU之间传来传去。数据在数据流图里行走(flow),想走得快,算得快,吞吐量得大,得将数据通信也设计成数据流图的一部分,不能让传输成了瓶颈。

    第二,哪里需要数据通信,需要什么形式的数据来进行通信,都要开发者去编程实现,这很麻烦,框架应该自动实现。

    袁进辉博士的总结是:“OneFlow有两个创新点:一会自动安排数据通信。二把数据通信和计算的关系协调好,让整体效率更高。”

    2020年,多节点和多设备的训练成为深度学习的主流,这一趋势符合袁进辉创业之初的判断,而这一思路可追溯到2014年他在微软亚研院的思考。

    袁进辉团队的短板明显存在,AI研发投入“壕无人性”,直白一点:创业公司穷。不过,2021年春节前,高瓴创投独家领投一流科技A轮融资,总额5000万元人民币。

    框架,A面是各有特色,B面是什么呢?

    答案是,大规模。

    这世界上唯一能够碾压国内一线城市房价增速的,只有AI模型的规模。虽然硬件和软件的进步已经将每年的训练成本降低了37%;但是,AI模型越来越大,以每年10倍的速度增长。

    人工智能模型就像宇宙飞船飞向太空最远处,正在探索能力的边界,拓展人类的想象力。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    大模型,跑步前进,工业级实现,拔腿直追。

    迈入大型模型训练时代,要求深度学习框架能够在面临数百台、数千台计算机的庞大规模时,有效地进行训练。

    比如,对于单个设备或多个设备数据并行这种简单场景的支持已经足够优秀,但在模型更大或者神经网络拓扑更复杂时,通用框架的易用性和效率都大打折扣,有这种需求的工业级应用只好下血本研发定制方案。

    大规模训练是当前各厂商竞争的一个焦点,谁输谁赢仍有变数。但可以肯定的是,只待“百团大战”的第一枪打响后,就是全方位的比拼(易用性,完备性,高效性)。

    坏消息是,国产在市场和生态上与美国巨头依然有很大的距离。

    好消息是,这不是一个完全被动的局面。

    甚至,国产框架的竞争也在细分,分化出局部战役。

    框架分为训练和推理两部分,训练框架难度大,推理框架次之。

    华为推理框架已经做到了生产级别,交付到了华为手机上。在手机巨头厂商中,框架的玩法,各不相同。

    都知道,苹果机器学习框架CoreML的代码是高度商业秘密。

    巨头的动作出其不意地整齐划一,端侧深度学习推理框架,BAT已经全部出手。

    百度Paddle Lite、阿里巴巴mnn、腾讯ncnn、华为移动端推理框架Bolt(华为诺亚方舟实验室开源)、OPEN AI LAB的边缘AI推理框架Tengine ,甚至连小米也有,MACE。

    单论技术难度,这些同类产品比深度学习框架低很多,但也各怀绝技,各有千秋,只是误放在一起比来比去,就不是内味儿了。

    深度学习框架的战场上,全行业最拔尖的团队悉数上场。

     

    4开源也竞争

    做基础软件,

    一要决心,

    二要耐心,

    三要开源,

    因为是大投入、长周期、抢生态。

    关于开源与生态,笔者最想采访的是美国硅谷创投圈资深人士,思科云计算事业部研发老大徐皞。

    多次联系,终于得到他的回复。

    他告诉笔者:“生态系统对操作系统而言,比操作系统本身更重要更难发展。这个道理很简单:操作系统可以雇几百个人写出来,生态需要恳求几万、几十万、几百万的人去写应用才算数。对手机电脑而言,多数用户是为应用买单,而不是为操作系统买单;对框架而言,多数用户是为能不能快速解决商业问题而买单。”

    开源是一个隐秘的角落,“大教堂与集市”的比喻口口相告,代代相传,是开发者眼中独一无二的圣地,挤满了来自全世界贡献与分享的热情,胸前佩戴“开源项目主要贡献者”的奖章,是江湖地位的象征。

    曾几何时,开源软件是对抗大公司的侠者。

    而如今,大公司却对开源软件越来越青睐。巨头对开源的投入,其背后是生态,是为了占领市场。开源软件的开发,不再是开发者之间松散的合作。

    开源软件公司有更多主导,开源软件的开发效率和质量都有所提升。

    开源的“不竞争”是另一种形式的竞争。眼下这几年,开源商业模式有变。徐皞认为:“开源软件真正兴盛,真正有突破,也就是五到十年的事情,开源软件商业模式依然在非常早期。”

    开源软件的背后是竞争,是研发与工程的投入,不投入,怎么占领。

    Linux是有很多家的贡献,但是安卓代码1200万行,全部是谷歌工程师自己写的。

    看看美国公司对开源市场的投入力度,中国公司不能落后,更应该主动投入,占据,甚至主导。

    开源和闭源,隔山两相望,且看那密密麻麻的布防,哪个山头都有重兵。

    开源软件世界里,框架虽为一隅,却极尽奇观。最好的思想,最好的代码都悉数拿出来了。这是分享,也是一种较量。

    前美国国防部咨询顾问,史蒂夫·马奎斯的说法是:“开源项目,来源于最纯粹的竞争。如果一个开源项目在商业世界获得了成功,那决不会是出于侥幸,决不会是因为其它竞争者恰好被规章制度所累、被知识产权法约束、被人傻钱多的金主拖垮。一个开源项目胜出了,背后只会有一个原因——它真的比其他竞争者都要好。”

    有借有还,再借不难。“借用思路”是爽了,但又诱发更深层次的竞争。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    上帝说,要有光。

    特斯拉说,要有电。

    开源说,要有代码。

    若问深度学习框架将带来什么,得想清楚深度学习的未来在哪。

    听说过深度学习又被称为软件2.0吗?作为数据驱动范式的顶峰,从数据里自动推导出程序,而不是必须靠程序员绞尽脑汁手动书写程序,这是一个划时代的进步。

    深度学习可能从一个小小岛屿,演进成一个大陆板块。

    在接下来的十年,深度学习软件有机会变成每个软件工程师医药箱里的必备“药丸”(不要乱想,不是蓝色的那种)。人类最重要的计算机软件将由其创造,自动驾驶,药物发现……

    开源软件的玩法自由奔放,但也有公地悲剧、PR铜臭。深度学习框架是一款理解成本很高的软件,群众基础薄(mei)弱(you)。于是,有人用“AI平台”一词,胡乱指代,张冠李戴,故意混淆,真令人作呕……大过节的,算了算了。

    有决心,就有私心,有疯子,就有骗子。

    时间总能给出答案。

     

    5结语

    古人云,按经济学的规律办事。

    大约两百多年前,英国经济学家杰文斯指出,技术成本降低,将提升技术的普及度,从而扩大市场规模。

    起初,戴着大粗金链子,说错了,戴着领结的大英煤老板十分担心,掐指一算:第一次工业革命让蒸汽机效率提升,每台用煤量减少,总的用煤量会下降,生意要下滑。

    结果事实正相反,用煤量大幅增加,好开心呀,因为蒸汽机使用成本降低了,使得蒸汽机用得更广泛了。

    框架的道理也一样,降低了研发人力成本,降低了计算资源成本,带动市场规模扩大。

    两百年后的今天,人工智能深度学习算法的大火,创造了算法软件包史无前例的机会,软件开发中的标准化就是把每个人都要干的活统一起来,成为工业化的环节。

    深度学习框架牛就牛在把共性提炼抽象出来,用最简约的代码实现,代码越简单越牛。

    软件流水线提升整个行业的水平,彻底替代手工打造的落后局面。

    搞深度学习框架的那帮人,不是疯子,就是骗子

    图为:贾扬清在阿里巴巴公司的工位

    搞深度学习框架的那群人,

    他们,可能是同学同事同行,亦狂亦侠亦友。

    他们,必然是浩宇璀璨群星,风雷意气峥嵘。

    贾扬清,化身修罗,重回故里,现任阿里巴巴技术副总裁。

    陈天奇,学府道场,CMU大学教书,投入深度学习编译TVM。

    李沐,蒲团打坐,驻守美国亚马逊,现任资深主任科学家。

    徐伟,开山老祖,现任地平线AI首席科学家。

    王益,绝顶神僧,谷歌、腾讯、蚂蚁金服美研主任科学家,2021年初去脸书公司。

    袁进辉,苦炼金刚,网名老师木,清华博后,微软科学家,穷酸创业。

    林敏,羽化成仙,跳出三界,研究基础理论去了。

    无论是产品,还是生态,最终,市场会决定胜出者。

    人工智能头顶高科技花环,被高高捧起,又被左右开弓扇耳光,灵魂三逼问:到底行不行?啥时候突破?谁杀死那只独角兽?

    突破难规划,创新难计划,独角兽不拼命也不行……此后,深度学习框架,对于国外开发者同样重要。

    需要发问的是:如何才能做出全球大流行的开源深度学习框架?网友质问的原话是:“你敢超过吗?”

    (未完待续,这篇文章太长了,转发后,去你的收藏夹吃灰吧。)

    展开全文
  • 作为一个在互联网公司面一次拿一次offer的面霸(请允许我使用一下夸张的修辞手法),打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚,在一个寂寞难耐的夜晚,我痛定思痛,决定开始《吊...

    你知道的越多,你不知道的越多

    点赞再看,养成习惯

    https://github.com/java…已经开源,有面试脑图

    前言

    正文

    上几期吊打系列我们提到了Redis的很多知识,还没看的小伙伴可以回顾一下

    那提到Redis我相信各位在面试,或者实际开发过程中对基本类型的使用场景,并发竞争带来的问题,以及缓存数据库双写入一致性的问题等,我们有请下一位受害者。

    面试开始

    一个大腹便便,穿着格子衬衣的中年男子,拿着一个满是划痕的mac向你走来,看着快秃顶的头发,心想着肯定是尼玛顶级架构师吧!但是我们腹有诗书气自华,虚都不虚。(这不是第一篇文章的面试官么?)

    小伙子,你还记得我在第一章里面问过你,Redis有几种基础数据类型么?

    嗯嗯,帅气的面试官,我肯定记得,没齿难忘!!!

    我特么谢谢你,都四面了还不给Offer!

    那你能说一下他们的特性,还有分别的使用场景么?

    行吧,那我先从String说起。

    String:

    这是最简单的类型,就是普通的 set 和 get,做简单的 KV 缓存。

    但是真实的开发环境中,很多仔可能会把很多比较复杂的结构也统一转成String去存储使用,比如有的仔他就喜欢把对象或者List转换为JSONString进行存储,拿出来再反序列话啥的。

    我在这里就不讨论这样做的对错了,但是我还是希望大家能在最合适的场景使用最合适的数据结构,对象找不到最合适的但是类型可以选最合适的嘛,之后别人接手你的代码一看这么规范,诶这小伙子有点东西呀,看到你啥都是用的String垃圾!

    好了这些都是题外话了,道理还是希望大家记在心里,习惯成自然嘛,小习惯成就你。

    String的实际应用场景比较广泛的有:

    • 缓存功能:String字符串是最常用的数据类型,不仅仅是Redis,各个语言都是最基本类型,因此,利用Redis作为缓存,配合其它数据库作为存储层,利用Redis支持高并发的特点,可以大大加快系统的读写速度、以及降低后端数据库的压力。

    • 计数器:许多系统都会使用Redis作为系统的实时计数器,可以快速实现计数和查询的功能。而且最终的数据结果可以按照特定的时间落地到数据库或者其它存储介质当中进行永久保存。

    • 共享用户Session:用户重新刷新一次界面,可能需要访问一下数据进行重新登录,或者访问页面缓存Cookie,但是可以利用Redis将用户的Session集中管理,在这种模式只需要保证Redis的高可用,每次用户Session的更新和获取都可以快速完成。大大提高效率。

    Hash:

    这个是类似 Map 的一种结构,这个一般就是可以将结构化的数据,比如一个对象(前提是这个对象没嵌套其他的对象)给缓存在 Redis 里,然后每次读写缓存的时候,可以就操作 Hash 里的某个字段

    但是这个的场景其实还是多少单一了一些,因为现在很多对象都是比较复杂的,比如你的商品对象可能里面就包含了很多属性,其中也有对象。我自己使用的场景用得不是那么多。

    List:

    List 是有序列表,这个还是可以玩儿出很多花样的。

    比如可以通过 List 存储一些列表型的数据结构,类似粉丝列表、文章的评论列表之类的东西。

    比如可以通过 lrange 命令,读取某个闭区间内的元素,可以基于 List 实现分页查询,这个是很棒的一个功能,基于 Redis 实现简单的高性能分页,可以做类似微博那种下拉不断分页的东西,性能高,就一页一页走。

    比如可以搞个简单的消息队列,从 List 头怼进去,从 List 屁股那里弄出来。

    List本身就是我们在开发过程中比较常用的数据结构了,热点数据更不用说了。

    • 消息队列:Redis的链表结构,可以轻松实现阻塞队列,可以使用左进右出的命令组成来完成队列的设计。比如:数据的生产者可以通过Lpush命令从左边插入数据,多个数据消费者,可以使用BRpop命令阻塞的“抢”列表尾部的数据。

    • 文章列表或者数据分页展示的应用。

      比如,我们常用的博客网站的文章列表,当用户量越来越多时,而且每一个用户都有自己的文章列表,而且当文章多时,都需要分页展示,这时可以考虑使用Redis的列表,列表不但有序同时还支持按照范围内获取元素,可以完美解决分页查询功能。大大提高查询效率。

    Set:

    Set 是无序集合,会自动去重的那种。

    直接基于 Set 将系统里需要去重的数据扔进去,自动就给去重了,如果你需要对一些数据进行快速的全局去重,你当然也可以基于 JVM 内存里的 HashSet 进行去重,但是如果你的某个系统部署在多台机器上呢?得基于Redis进行全局的 Set 去重。

    可以基于 Set 玩儿交集、并集、差集的操作,比如交集吧,我们可以把两个人的好友列表整一个交集,看看俩人的共同好友是谁?对吧。

    反正这些场景比较多,因为对比很快,操作也简单,两个查询一个Set搞定。

    Sorted Set:

    Sorted set 是排序的 Set,去重但可以排序,写进去的时候给一个分数,自动根据分数排序。

    有序集合的使用场景与集合类似,但是set集合不是自动有序的,而Sorted set可以利用分数进行成员间的排序,而且是插入时就排序好。所以当你需要一个有序且不重复的集合列表时,就可以选择Sorted set数据结构作为选择方案。

    • 排行榜:有序集合经典使用场景。例如视频网站需要对用户上传的视频做排行榜,榜单维护可能是多方面:按照时间、按照播放量、按照获得的赞数等。

    • Sorted Sets来做带权重的队列,比如普通消息的score为1,重要消息的score为2,然后工作线程可以选择按score的倒序来获取工作任务。让重要的任务优先执行。

      微博热搜榜,就是有个后面的热度值,前面就是名称

    小结

    Redis基础类型有五种,这个我在基础里面也有提到了,这个问题其实一般都是对P6以下,也就是1-3年左右的小伙伴可能是会问得比较多的问题。

    能回答出来五种我想大家都可以,但是不知道大家是否知道,五种类型具体的使用场景,以及什么时候用什么类型最合适呢?

    要是你回答的不好,没说出几种数据类型,也没说什么场景,你完了,面试官对你印象肯定不好,觉得你平时就是做个简单的 set 和 get。所以看似很简单的面试题实则最容易看出你的深浅了,大家都要注意打好基础

    你有没有考虑过,如果你多个系统同时操作(并发)Redis带来的数据问题?

    嗯嗯这个问题我以前开发的时候遇到过,其实并发过程中确实会有这样的问题,比如下面这样的情况

    系统A、B、C三个系统,分别去操作Redis的同一个Key,本来顺序是1,2,3是正常的,但是因为系统A网络突然抖动了一下,B,C在他前面操作了Redis,这样数据不就错了么。

    就好比下单,支付,退款三个顺序你变了,你先退款,再下单,再支付,那流程就会失败,那数据不就乱了?你订单还没生成你却支付,退款了?明显走不通了,这在线上是很恐怖的事情。

    那这种情况怎么解决呢?

    我们可以找个管家帮我们管理好数据的嘛!

    某个时刻,多个系统实例都去更新某个 key。可以基于 Zookeeper 实现分布式锁。每个系统通过 Zookeeper 获取分布式锁,确保同一时间,只能有一个系统实例在操作某个 Key,别人都不允许读和写。

    你要写入缓存的数据,都是从 MySQL 里查出来的,都得写入 MySQL 中,写入 MySQL 中的时候必须保存一个时间戳,从 MySQL 查出来的时候,时间戳也查出来。

    每次要写之前,先判断一下当前这个 Value 的时间戳是否比缓存里的 Value 的时间戳要新。如果是的话,那么可以写,否则,就不能用旧的数据覆盖新的数据。

    你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?

    一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去。

    串行化可以保证一定不会出现不一致的情况,但是它也会导致系统的吞吐量大幅度降低,用比正常情况下多几倍的机器去支撑线上的一个请求。

    把一些列的操作都放到队列里面,顺序肯定不会乱,但是并发高了,这队列很容易阻塞,反而会成为整个系统的弱点,瓶颈

    Cache Aside Pattern

    最经典的缓存+数据库读写的模式,就是 Cache Aside Pattern

    • 读的时候,先读缓存,缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应。
    • 更新的时候,先更新数据库,然后再删除缓存

    为什么是删除缓存,而不是更新缓存?

    原因很简单,很多时候,在复杂点的缓存场景,缓存不单单是数据库中直接取出来的值。

    比如可能更新了某个表的一个字段,然后其对应的缓存,是需要查询另外两个表的数据并进行运算,才能计算出缓存最新的值的。

    另外更新缓存的代价有时候是很高的。是不是说,每次修改数据库的时候,都一定要将其对应的缓存更新一份?也许有的场景是这样,但是对于比较复杂的缓存数据计算的场景,就不是这样了。如果你频繁修改一个缓存涉及的多个表,缓存也频繁更新。但是问题在于,这个缓存到底会不会被频繁访问到?

    举个栗子:一个缓存涉及的表的字段,在 1 分钟内就修改了 20 次,或者是 100 次,那么缓存更新 20 次、100 次;但是这个缓存在 1 分钟内只被读取了 1 次,有大量的冷数据

    实际上,如果你只是删除缓存的话,那么在 1 分钟内,这个缓存不过就重新计算一次而已,开销大幅度降低。用到缓存才去算缓存。

    其实删除缓存,而不是更新缓存,就是一个 Lazy 计算的思想,不要每次都重新做复杂的计算,不管它会不会用到,而是让它到需要被使用的时候再重新计算。

    MybatisHibernate,都有懒加载思想。查询一个部门,部门带了一个员工的 List,没有必要说每次查询部门,都里面的 1000 个员工的数据也同时查出来啊。80% 的情况,查这个部门,就只是要访问这个部门的信息就可以了。先查部门,同时要访问里面的员工,那么这个时候只有在你要访问里面的员工的时候,才会去数据库里面查询 1000 个员工。

    Redis 和 Memcached 有啥区别,为啥选择用Redis作为你们的缓存中间件?

    • Redis 支持复杂的数据结构

    Redis 相比 Memcached 来说,拥有更多的数据结构,能支持更丰富的数据操作。如果需要缓存能够支持更复杂的结构和操作, Redis 会是不错的选择。

    • Redis 原生支持集群模式

    在 redis3.x 版本中,便能支持 Cluster 模式,而 Memcached 没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据。

    • 性能对比

    由于 Redis 只使用单核,而 Memcached 可以使用多核,所以平均每一个核上 Redis 在存储小数据时比 Memcached 性能更高。而在 100k 以上的数据中,Memcached 性能要高于 Redis,虽然 Redis 最近也在存储大数据的性能上进行优化,但是比起 Remcached,还是稍有逊色。

    Tip:其实面试官这么问,是想看你知道为啥用这个技术栈么?你为啥选这个技术栈,你是否做过技术选型的对比,优缺点你是否了解,你啥都不知道,只是为了用而用,那你可能就差点意思了。

    redis 的线程模型了解么?

    Redis 内部使用文件事件处理器 file event handler,这个文件事件处理器是单线程的,所以 Redis 才叫做单线程的模型。它采用 IO 多路复用机制同时监听多个 Socket,根据 Socket 上的事件来选择对应的事件处理器进行处理。

    文件事件处理器的结构包含 4 个部分:

    • 多个 Socket
    • IO 多路复用程序
    • 文件事件分派器
    • 事件处理器(连接应答处理器、命令请求处理器、命令回复处理器)

    多个 Socket 可能会并发产生不同的操作,每个操作对应不同的文件事件,但是 IO 多路复用程序会监听多个 Socket,会将 Socket 产生的事件放入队列中排队,事件分派器每次从队列中取出一个事件,把该事件交给对应的事件处理器进行处理。

    面试结束

    小伙子对你面试了四轮,你说话有理有据,逻辑清晰,来公司后肯定是一把好手,我想要不你来当我的Leader吧,哈哈?

    面试官别跟我开玩笑了,我跟您这样日积月累的技术专家还是有很多差距的,您的经验和技术上的深度,没有很长时间的磨练是无法达到的,我还得多跟您学习。

    好的,小伙子有点东西,你年少有为不自卑,知道什么是珍贵,就是你了来上班吧。

    好的面试官,不过我想我在Java基础,MQ,Dubbo等等领域还有好多知识点您没问我,要不下次继续面我?

    强行,为吊打下一期埋伏笔哈哈,下期写啥你们定!!!

    能撑到最后,你自己都忍不住自己给自己点个赞了!

    暗示点赞,每次都看了不点赞,你们想白嫖我么?你们好坏喲,不过我喜欢)。


    《吊打面试官》Redis系列 ---- 全剧终


    总结

    既然都说了是Redis的终章我最后也做个Redis方面常见面试题,题目的总结,答案大家要去思考我前面的文章基本上都提到了,结果可以去我公众号回复【答案】获取,不过我还是希望大家能看到题目就能想到答案,并且记在心中,教大家怎么回答只是帮大家组织下语言,真正的场景解决方案还是要大家理解的。

    (周三以后出答案,我先睡会)

    • 0、在集群模式下,Redis 的 Key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 Hash 算法吗?
    • 1、使用Redis有哪些好处?
    • 2、Redis相比Memcached有哪些优势?
    • 3、Redis常见性能问题和解决方案
    • 4、MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?
    • 5、Memcache与Redis的区别都有哪些?
    • 6、Redis 常见的性能问题都有哪些?如何解决?
    • 7、在什么样的场景下可以充分的利用Redis的特性,大大提高Redis的效率?
    • 8、Redis的缓存雪崩、穿透、击穿了解么?有什么异同点?分别怎么解决?
    • 9、Redis的基本类型有哪些?他们的使用场景了解么?比较高级的用法你使用过么?
    • 10、Redis主从怎么同步数据的?集群的高可用怎么保证?持久化机制了解么?
    • 11、为什么 redis 单线程却能支撑高并发?
    • 12、如何保证缓存和数据库数据的一致性?
    • 13、项目中是怎么用缓存的,用了缓存之后会带来什么问题?

    絮叨+

    最后我想说的就是,我这四章只是介绍到了一些Redis面试比较常见的问题,其实还有很多点我都没回答到,大家如果为了对付面试可能是够用了,但是我们技术人员还是要保持对技术的敬畏心,你不能浅尝即止,还是要深究的。

    你永远只会用,不去考虑用了会带来的问题,以及出现问题之后的解决方案,我觉得你大概率会停滞不前,既然入都入了这行了,为啥不武装一下自己。

    其实学习技术是个反哺的过程,学习的时候可能你只是感觉知识广度、深度上去了,一个知识点你这样,两个、三个知识点你都这样,最后你发现你的技术已经跟身边一样P6的仔不一样了,这样你可能在团队重大项目的贡献都上去了,那P7的晋升几率是不是大了,钱是不是上去了,女朋友是不是好看了,房子是不是大了。

    Tip:本来有很多我准备的资料的,但是都是外链,或者不合适的分享方式,博客的运营小姐姐提醒了我,所以大家去公众号回复【资料】好了。

    白嫖不好,创作不易,各位的点赞就是丙丙创作的最大动力,我们下篇文章见,文末图片有福利

    持续更新,未完待续……


    文章每周持续更新,可以微信搜索「 三太子敖丙 」第一时间阅读,回复【资料】【面试】有我准备的一线大厂面试资料和文章,本文 GitHub https://github.com/JavaFamily 已经收录,有大厂面试完整考点,欢迎Star。

    你知道的越多,你不知道的越多

    展开全文
  • 一乙二十丁厂七卜入八九几儿了力乃刀又三于干亏士工土才寸下大丈与万上小口巾山千乞川亿个勺久凡及夕丸么广亡门义之尸弓己已子卫也女飞刃习叉马乡丰王井开夫天无元专云扎艺木五支厅不太犬区历尤友匹车巨牙屯比互...
    • 字体文件太大,对各种开发都很不友好,然而每种格式的字体文件都是几M到十几M
    • 如何从字体文件中提取自己想要的个别字,或筛选掉不常用的字体?

    • 线上裁剪ttf文件 线上裁剪字体文件

    • 常用2500字

        > 一乙二十丁厂七卜人入八九几儿了力乃刀又三于干亏士工土才寸下大丈与万上小口巾山千乞川亿个勺久凡及夕丸么广亡门义之尸弓己已子卫也女飞刃习叉马乡丰王井开夫天无元专云扎艺木五支厅不太犬区历尤友匹车巨牙屯比互切瓦止少日中冈贝内水见午牛手毛气升长仁什片仆化仇币仍仅斤爪反介父从今凶分乏公仓月氏勿欠风丹匀乌凤勾文六方火为斗忆订计户认心尺引丑巴孔队办以允予劝双书幻玉刊示末未击打巧正扑扒功扔去甘世古节本术可丙左厉右石布龙平灭轧东卡北占业旧帅归且旦目叶甲申叮电号田由史只央兄叼叫另叨叹四生失禾丘付仗代仙们仪白仔他斥瓜乎丛令用甩印乐句匆册犯外处冬鸟务包饥主市立闪兰半汁汇头汉宁穴它讨写让礼训必议讯记永司尼民出辽奶奴加召皮边发孕圣对台矛纠母幼丝式刑动扛寺吉扣考托老执巩圾扩扫地扬场耳共芒亚芝朽朴机权过臣再协西压厌在有百存而页匠夸夺灰达列死成夹轨邪划迈毕至此贞师尘尖劣光当早吐吓虫曲团同吊吃因吸吗屿帆岁回岂刚则肉网年朱先丢舌竹迁乔伟传乒乓休伍伏优伐延件任伤价份华仰仿伙伪自血向似后行舟全会杀合兆企众爷伞创肌朵杂危旬旨负各名多争色壮冲冰庄庆亦刘齐交次衣产决充妄闭问闯羊并关米灯州汗污江池汤忙兴宇守宅字安讲军许论农讽设访寻那迅尽导异孙阵阳收阶阴防奸如妇好她妈戏羽观欢买红纤级约纪驰巡寿弄麦形进戒吞远违运扶抚坛技坏扰拒找批扯址走抄坝贡攻赤折抓扮抢孝均抛投坟抗坑坊抖护壳志扭块声把报却劫芽花芹芬苍芳严芦劳克苏杆杠杜材村杏极李杨求更束豆两丽医辰励否还歼来连步坚旱盯呈时吴助县里呆园旷围呀吨足邮男困吵串员听吩吹呜吧吼别岗帐财针钉告我乱利秃秀私每兵估体何但伸作伯伶佣低你住位伴身皂佛近彻役返余希坐谷妥含邻岔肝肚肠龟免狂犹角删条卵岛迎饭饮系言冻状亩况床库疗应冷这序辛弃冶忘闲间闷判灶灿弟汪沙汽沃泛沟没沈沉怀忧快完宋宏牢究穷灾良证启评补初社识诉诊词译君灵即层尿尾迟局改张忌际陆阿陈阻附妙妖妨努忍劲鸡驱纯纱纳纲驳纵纷纸纹纺驴纽奉玩环武青责现表规抹拢拔拣担坦押抽拐拖拍者顶拆拥抵拘势抱垃拉拦拌幸招坡披拨择抬其取苦若茂苹苗英范直茄茎茅林枝杯柜析板松枪构杰述枕丧或画卧事刺枣雨卖矿码厕奔奇奋态欧垄妻轰顷转斩轮软到非叔肯齿些虎虏肾贤尚旺具果味昆国昌畅明易昂典固忠咐呼鸣咏呢岸岩帖罗帜岭凯败贩购图钓制知垂牧物乖刮秆和季委佳侍供使例版侄侦侧凭侨佩货依的迫质欣征往爬彼径所舍金命斧爸采受乳贪念贫肤肺肢肿胀朋股肥服胁周昏鱼兔狐忽狗备饰饱饲变京享店夜庙府底剂郊废净盲放刻育闸闹郑券卷单炒炊炕炎炉沫浅法泄河沾泪油泊沿泡注泻泳泥沸波泼泽治怖性怕怜怪学宝宗定宜审宙官空帘实试郎诗肩房诚衬衫视话诞询该详建肃录隶居届刷屈弦承孟孤陕降限妹姑姐姓始驾参艰线练组细驶织终驻驼绍经贯奏春帮珍玻毒型挂封持项垮挎城挠政赴赵挡挺括拴拾挑指垫挣挤拼挖按挥挪某甚革荐巷带草茧茶荒茫荡荣故胡南药标枯柄栋相查柏柳柱柿栏树要咸威歪研砖厘厚砌砍面耐耍牵残殃轻鸦皆背战点临览竖省削尝是盼眨哄显哑冒映星昨畏趴胃贵界虹虾蚁思蚂虽品咽骂哗咱响哈咬咳哪炭峡罚贱贴骨钞钟钢钥钩卸缸拜看矩怎牲选适秒香种秋科重复竿段便俩贷顺修保促侮俭俗俘信皇泉鬼侵追俊盾待律很须叙剑逃食盆胆胜胞胖脉勉狭狮独狡狱狠贸怨急饶蚀饺饼弯将奖哀亭亮度迹庭疮疯疫疤姿亲音帝施闻阀阁差养美姜叛送类迷前首逆总炼炸炮烂剃洁洪洒浇浊洞测洗活派洽染济洋洲浑浓津恒恢恰恼恨举觉宣室宫宪突穿窃客冠语扁袄祖神祝误诱说诵垦退既屋昼费陡眉孩除险院娃姥姨姻娇怒架贺盈勇怠柔垒绑绒结绕骄绘给络骆绝绞统耕耗艳泰珠班素蚕顽盏匪捞栽捕振载赶起盐捎捏埋捉捆捐损都哲逝捡换挽热恐壶挨耻耽恭莲莫荷获晋恶真框桂档桐株桥桃格校核样根索哥速逗栗配翅辱唇夏础破原套逐烈殊顾轿较顿毙致柴桌虑监紧党晒眠晓鸭晃晌晕蚊哨哭恩唤啊唉罢峰圆贼贿钱钳钻铁铃铅缺氧特牺造乘敌秤租积秧秩称秘透笔笑笋债借值倚倾倒倘俱倡候俯倍倦健臭射躬息徒徐舰舱般航途拿爹爱颂翁脆脂胸胳脏胶脑狸狼逢留皱饿恋桨浆衰高席准座脊症病疾疼疲效离唐资凉站剖竞部旁旅畜阅羞瓶拳粉料益兼烤烘烦烧烛烟递涛浙涝酒涉消浩海涂浴浮流润浪浸涨烫涌悟悄悔悦害宽家宵宴宾窄容宰案请朗诸读扇袜袖袍被祥课谁调冤谅谈谊剥恳展剧屑弱陵陶陷陪娱娘通能难预桑绢绣验继球理捧堵描域掩捷排掉堆推掀授教掏掠培接控探据掘职基著勒黄萌萝菌菜萄菊萍菠营械梦梢梅检梳梯桶救副票戚爽聋袭盛雪辅辆虚雀堂常匙晨睁眯眼悬野啦晚啄距跃略蛇累唱患唯崖崭崇圈铜铲银甜梨犁移笨笼笛符第敏做袋悠偿偶偷您售停偏假得衔盘船斜盒鸽悉欲彩领脚脖脸脱象够猜猪猎猫猛馅馆凑减毫麻痒痕廊康庸鹿盗章竟商族旋望率着盖粘粗粒断剪兽清添淋淹渠渐混渔淘液淡深婆梁渗情惜惭悼惧惕惊惨惯寇寄宿窑密谋谎祸谜逮敢屠弹随蛋隆隐婚婶颈绩绪续骑绳维绵绸绿琴斑替款堪搭塔越趁趋超提堤博揭喜插揪搜煮援裁搁搂搅握揉斯期欺联散惹葬葛董葡敬葱落朝辜葵棒棋植森椅椒棵棍棉棚棕惠惑逼厨厦硬确雁殖裂雄暂雅辈悲紫辉敞赏掌晴暑最量喷晶喇遇喊景践跌跑遗蛙蛛蜓喝喂喘喉幅帽赌赔黑铸铺链销锁锄锅锈锋锐短智毯鹅剩稍程稀税筐等筑策筛筒答筋筝傲傅牌堡集焦傍储奥街惩御循艇舒番释禽腊脾腔鲁猾猴然馋装蛮就痛童阔善羡普粪尊道曾焰港湖渣湿温渴滑湾渡游滋溉愤慌惰愧愉慨割寒富窜窝窗遍裕裤裙谢谣谦属屡强粥疏隔隙絮嫂登缎缓编骗缘瑞魂肆摄摸填搏塌鼓摆携搬摇搞塘摊蒜勤鹊蓝墓幕蓬蓄蒙蒸献禁楚想槐榆楼概赖酬感碍碑碎碰碗碌雷零雾雹输督龄鉴睛睡睬鄙愚暖盟歇暗照跨跳跪路跟遣蛾蜂嗓置罪罩错锡锣锤锦键锯矮辞稠愁筹签简毁舅鼠催傻像躲微愈遥腰腥腹腾腿触解酱痰廉新韵意粮数煎塑慈煤煌满漠源滤滥滔溪溜滚滨粱滩慎誉塞谨福群殿辟障嫌嫁叠缝缠静碧璃墙撇嘉摧截誓境摘摔聚蔽慕暮蔑模榴榜榨歌遭酷酿酸磁愿需弊裳颗嗽蜻蜡蝇蜘赚锹锻舞稳算箩管僚鼻魄貌膜膊膀鲜疑馒裹敲豪膏遮腐瘦辣竭端旗精歉熄熔漆漂漫滴演漏慢寨赛察蜜谱嫩翠熊凳骡缩慧撕撒趣趟撑播撞撤增聪鞋蕉蔬横槽樱橡飘醋醉震霉瞒题暴瞎影踢踏踩踪蝶蝴嘱墨镇靠稻黎稿稼箱箭篇僵躺僻德艘膝膛熟摩颜毅糊遵潜潮懂额慰劈操燕薯薪薄颠橘整融醒餐嘴蹄器赠默镜赞篮邀衡膨雕磨凝辨辩糖糕燃澡激懒壁避缴戴擦鞠藏霜霞瞧蹈螺穗繁辫赢糟糠燥臂翼骤鞭覆蹦镰翻鹰警攀蹲颤瓣爆疆壤耀躁嚼嚷籍魔灌蠢霸露囊罐翎qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890《》?!,。妩媚曳鎏怡廓沧
      

    附:一些字体文件


    后期接触其他字体,会再次补充

    展开全文
  • 我也一样,曾几何时,我也是2500一个月都找不到工作的青涩少年,也是别人发传单、做门童,满地找兼职的学生仔。 这篇文章很长,近7000。我选取了我人生中的几个重要经历和抉择,这些事件,持续影响了我的一生,...
  • 大学计算机系最努力的同学都是如何学习的?

    万次阅读 多人点赞 2021-06-21 09:15:04
    我上大学时,连续三年得过国家励志奖学金,英语过六级,以为软考有用,还考了个软件设计师证书,以为四级有用,也考了个软件测试工程师证书,看人家用c++软件,自学MFC了几个桌面小程序。 自以为很牛逼的去找...
  • 互联网火热的时候,他们靠着帮人简历造假和训练面试题来引人入坑,虽然绝大多数参与培训的人都找不到像样的工作,但也不妨碍他们扯着互联网的旗号骗钱,很多招聘网站上全是他们的广告,打着入职培训包就业的名义骗钱...
  • 我的兴趣爱好作文50010篇

    千次阅读 2021-07-22 04:58:50
    我的兴趣爱好作文50010篇萝卜白菜,各有所爱。任何一种兴趣都包含着天性中有倾向性的呼声,也许还包含着一种处在原始状态中的天才的闪光。下面给大家分享我的兴趣爱好作文,欢迎借鉴!我的兴趣爱好作文1我的兴趣有...
  • 在 Unity 中制作游戏时,很可能会导入一些外部字体,而从网上下载的字体,小则两三兆,大则十几兆的,这些字体文件既占包体又占内存,所以对动态字体的剥离和精简就很有必要了。 FontSubsetGUI工具 ...
  • 地球来源2【地底爬虫访谈】

    千次阅读 2021-08-29 21:50:20
    1998 年一位地底的年轻雌性爬虫到地表森林(瑞典)采集资料,无意中拜访一位离群索居于森林小木屋的主人EF,几次的拜访后,爬虫向他表露真实身分(注:爬虫具有诱导人类的精神力,能使人类把爬虫看成是正常...
  • 字体压缩工具

    千次阅读 2021-11-09 11:01:18
    妩媚曳鎏怡廓沧‘ 目标字体.ttf 生成字体.ttf 方法2:蛛(前端专用) 蛛的工作原理是把页面上用到的文字从字体包中提取出来打包成同名的新字体包。压缩阶段没有出现过的文字,则新字体包中不会包含。 需要安装...
  • 教你如何初/高级前端简历

    千次阅读 2021-09-12 22:21:21
    110 赞同了该文章 1. 前言 本文仅是针对初高级技术岗位哈。 参与了部门的实习生招聘工作,收到了很多同学的简历。发现有一些同学的简历得不是很好看。 但是,仔细聊了聊之后发现,这些同学其实技术是很厉害的...
  • 概述:本道作业题是柯拿拷同学的课后练习,分享的知识点是c英语开头名词,指导老师为印老师,涉及到的知识点涵盖:C开头的励志的英文单词要C开头的~例如Champion,Confidence,...-c英语开头名词-英语,下面是柯...
  • “并发”这个词在Java世界里往往和“高级、核心”等字眼相联系起来,就冲着这两个,都将勾起软件工程师们埋藏在心底那种对技术的探索欲和对高级API的驾驭感。 程序员嘛,多少都有点职业病。其实Java对“并发”...
  • 输入法,相信很多都不陌生,已经成为了我们日常生活中的常用软件。近日,有微博网友@冷敏寒子夜 在微博上发文,希望网友可以帮忙破解一款输入法或者帮忙寻找该输入法的开发者。是...
  • 如何出有效的单元测试

    千次阅读 2022-08-17 16:26:49
    从软件工程到卓越工程,单元测试从可选变成了必要。但无效的单元测试没有意义,反而会增加维护成本,本文将为大家分享该如何出有效的单元测试。
  • ttf字体文件抽取自己想要的

    万次阅读 2017-04-14 21:31:15
    【说明】游戏中经常需要用到各种字体,但是网上下载的TTF字体文件最小也有好几兆,要是游戏中需要用到几种字体,那简直不能忍。...答案是肯定的,除了用FontCreator那种累死不偿命的东西之外,这里介绍一个简
  • 给java web一年左右工作经验的

    千次阅读 2017-05-10 15:15:53
    大学就开始学习web,磕磕绊绊一路走过来,当中得到过开源社区很多的帮助,总结了这些年来的... ps:文字千真万确都是我自己的。 在此,特别感谢Hansen,他曾经有私的帮助过我(两包零食),他是一个很强的启蒙胖子。
  • 数字IC面经

    千次阅读 多人点赞 2020-09-01 16:14:23
    以上是我在当时去实习之前的,之后去了具体工作内容就是在腾讯量子实验室做电子学测控系统部分,导师和同事都很好,工作氛围轻松,腾讯对待实习生一视同仁,经常团建。但是做的具体内容不是很喜欢,所以后来也...
  • 围观了字节跳动张一鸣近 10 年的微博,有整理了这 231 条干货关键词:延迟满足感,自控,理性,反省,创新,学习。张一鸣从南开大学毕业,妻子是大学同学,毕业后去过微软,后来从微软离职,然后去过饭否,应该跟...
  • 通用规范汉字表 一级表(3500

    千次阅读 2020-08-11 09:23:44
    一级表(3500) 一乙二十丁厂七卜八入儿匕几九刁了刀力乃又三干于亏工土士才下寸大丈与万上小口山巾千乞川亿个夕久么勺凡丸及广亡门丫义之尸己已巳弓子卫也女刃飞习叉马乡丰王开井天夫元无云专丐扎艺木五支厅...
  • PyCharm 这40个使用技巧真

    万次阅读 多人点赞 2021-09-29 15:47:54
    我要哭惹~~~这个回答是在 Mac OS 的环境下的,如果你是 Windows 用户,也不要紧,按照我为数不多的使用经验,你只要把 command(也就是 ⌘ )换成 ctrl 键就 ok了。如果上面的经验不灵的话。。。那我只能放大招了...
  • 9个关键词,2万漫谈元宇宙

    千次阅读 2021-12-03 10:21:57
    许多现在代码的的很溜的,常常是小时候家里就斥“巨资”给他们买了中华学习机、486电脑,兴趣和能力“从娃娃抓起”。 有资料表明,我国的数字化产业已经达到31.7万亿GDP,占比达到总GDP的30%以上。这里面包含的...
  • 播放器加载中 [00:02.00]Unit One ... 公开课、作文、复习、试卷、知识点、活动、拼音、字母、钟表、看图话、故事、双语故事、成语、常识、APP、语文、数学、英语、百家姓、三字经、唐诗三百首、自助查询、超级口算
  • 最近有碰到很多在国外的同学,需要特别注意的三点: 询问内推,是否支持英文简历 询问内推,是否支持国外电话,并且区号要完整 由于时差,你在简历上最好留一个北京时间的方便联系时间段,减少沟通成本 遇到...
  • 我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃 3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4).80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,...
  • 大三上学期读了许多“程序员”的公众号,当时计算机...没有天生就会调 bug 、教程或趣味科普。而技术博客是记录下“成长”这个过程的载体,也是促进这个过程的良好催化剂。本文聊聊我技术博客这一年来的心得。
  • 常用2500 const char* hanzi[]={ "一","乙","二","十","丁","厂","七","卜","八","","入","儿","九","几","了","乃","刀","力","又","三","干","于","亏","士","土","工","才","下","寸","丈","...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,460
精华内容 4,984
热门标签
关键字:

帮人的棒字怎么写