视频也可以通过扩散模型生成,效果非常好:新的SOTA已经达到|谷歌

扩散模型最近是真的有点火。

前有OpenAI用它打败霸榜多年的GAN,现在谷歌又紧随其后,提出了一个视频扩散模型

和图像生成一样,初次尝试,它居然就表现出了不俗的性能。

比如输入“fireworks”,就能生成这样的效果:

满屏烟花盛放,肉眼看上去简直可以说是以假乱真了。

为了让生成视频更长、分辨率更高,作者还在这个扩散模型中引入了一种全新的采样方法。

最终,该模型在无条件视频生成任务中达到全新SOTA

一起来看。

由图像扩散模型扩展而成

这个扩散视频模型,由标准的图像扩散模型UNet扩展而成。

UNet是一种神经网络架构,分为空间下采样通道和上采样通道,通过残差连接。

该网络由多层2D卷积残差块构建而成,每个卷积块后面跟着一个空间注意块。

通过固定帧数的块,以及在空间和时间上分解的3D U-Net,就可以将它扩展为视频模型。

具体来说:

先将每个二维卷积更改为三维卷积(space-only),比如将3×3卷积更改为1x3x3卷积(第一轴(axis)索引视频帧,第二轴和第三轴索引空间高度和宽度)。

每个空间注意块中的注意力仍然专注于空间维度。

然后,在每个空间注意块之后,插入一个时间注意块;该时间注意块在第一个轴上执行注意力,并将空间轴视为批处理轴(batch axes)。

众所周知,像这样在视频Transformer中分对时空注意力进行分解,会让计算效率更高。

由此一来,也就能在视频和图像上对模型进行联合训练,而这种联合训练对提高样本质量很有帮助。

此外,为了生成更长和更高分辨率的视频,作者还引入了一种新的调整技术:梯度法。

它主要修改模型的采样过程,使用基于梯度的优化来改善去噪数据的条件损失,将模型自回归扩展到更多的时间步(timestep)和更高的分辨率。

评估无条件和文本条件下的生成效果

对于无条件视频生成,训练和评估在现有基准上进行。

该模型最终获得了最高的FID分数和IS分数,大大超越了此前的SOTA模型。

对于文本条件下的视频生成,作者在1000万个字幕视频的数据集上进行了训练,空间分辨率为64x64px;

在此之前,视频生成模型采用的都是各种GAN、VAE,以及基于流的模型以及自回归模型。

所以这也是他们首次报告扩散模型根据文本生成视频的结果。

下图则显示了无分类器引导对该模型生成质量的影响:与其他非扩散模型一致,添加引导会增加每个单独图像的保真度(右为该视频扩散模型,可以看到它的图片更加真实和清晰)。

△ 图片为随机截取的视频帧

最后,作者也验证发现,他们所提出的梯度法在生成长视频时,确实比此前的方法更具多样性,也就更能保证生成的样本与文本达成一致。

△ 右为梯度法

论文地址:https://arxiv.org/abs/2204.03458

项目主页:https://video-diffusion.github.io/

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

中文和英文的加入真的只是为了壮语吗?

好好讲话的ONE读君 | didi

最近,你有上网冲浪吗,有get到一些京彩绝伦的笑点吗?

等一下,没有错别字,“京”是“吴京”的“京”。

吴京的微博有多好笑,没有从头翻到尾的人不会知道。微博上有博主稍微扒拉了一下,总结出了“和死鬼段奕宏打情骂俏合集”“那些年剩男的苦闷发言”“登山勇夺第一太兴奋不幸彻夜头痛合集”“和吕建民喝酒掰车筐合集”“和孙楠录歌始末”等等。

“剩男的苦闷发言合集”中,吴京转发了一位鸡汤博主写的“白羊座的爱”,大概就是讲这个星座如何地长情,如何地踏实,如何地纯粹。兴许是被自己的一往情深打动了,他情绪激昂地讲了句:So TM true!!!

还有人(那个人就是我)翻出了他跟演员马丽的互动,开口也是“谁扶?谁不服?so tm what啊!”

网友被逗乐了,觉得这种“英文+中文拼音”的说话方式简直不要太有趣,于是纷纷模仿京式英语造句:

——so tm true!

——笑tm死!

——So Tm 搞笑!

大家伙儿都笑晕了,真是so tm happy!

其实这种中文夹英文的造句,已成为一种很常见的说话方式,不知道你身边是否有人这样讲话:

——完蛋了,我明天有个Assignment要Due!

——Fiona,下午的会议室帮我Cancel一下!

——我很讨厌她,But她真的很努力。

更古早的句式还有:

——Hello啊,饭已经OK了,下来米西吧。

很多人不喜欢这种讲话方式,甚至对此深恶痛绝,觉得大家都是中国人,完全不使用英文很难吗?但当事人也会委屈,觉得自己只是说成习惯,当下脱口而出了,并没有其他意思。

So,为什么有些人讲话喜欢中文夹英文单词,这是出于什么心态?以及,这就是传说中的zhuangbility吗?

中文英文,看谁跑得更快

在中文里夹英文单词,其实是一种常见的语言现象,叫语码转换(Code-switching),是指一个人在一个对话中交替使用多于一种语言或其变体。

这种现象经常发生在多语言者的日常说话中,譬如回国不久的留学生、双语工作环境的白领、被英语四六级折磨的学生群体等。他们在沟通中,常常会面临使用哪种语码更得体的问题,即使嘴上没有表现出来,但大脑却经常在两种语码中跳跃和转换。

那么大脑是如何选择使用哪种语码的,母语or第二语言?

答案是,看速度。

语言的作用只是要表达人们大脑里的内容,当你说话时,其实是一种内在的翻译机制,把你自己的思想翻译成了一种具体的语码,说出来成言语,让对方听到和理解。不同的语言之间会有冲突。当你学习和使用了一门新的语言,那么势必会对你原来的语言系统产生影响,因为语言之间的冲突不可调和。

当你掌握了两种及以上的语言之后,就意味着你拥有了两种翻译方式,真正讲话时,哪一个翻译速度更快,先说出口的就是哪一种语言因为这种语码在你大脑里跑过了另一种。而中英文混杂,是因为不同语言在大脑中的翻译速度不同,譬如”So Tm True!”就是要表达“真他妈的对!” ,但“so”跑过了“真”,“Tm”跑过了”他妈的”,“True”跑过了“对”,最后讲出来就成了这样。

在英语地区待得久的人,讲英文成为了习惯,一下子反应过来就是它了。譬如在迟到的时候讲一句“sorry啊”,点餐的时候“请给我一个combo(套餐)”,分别的时候礼貌地say“那,See you later啦”等等,可能真不是要拿小学英语臭显摆,而是中英文在大脑里赛跑,某些英语单词跑得比中文快,所以就脱口而出了。

这种速度并不是你能完全控制的,更像是潜意识的行为,有时你甚至意识不到自己讲了英文。换个角度,其实老外在中国待久了也会语码转换失败,回国后也会英文夹中文。

台湾有一档综艺节目《请问你是哪里人》,节目组采访了来自意大利、德国、美国、法国等地的嘉宾,他们都在中国待了很久,中文讲得非常棒,棒到已经不会好好讲母语了,很多事情就回不去了。

譬如来自美国的杜力,回国后妈妈问他想要吃点什么:

——Do you want somecake,or some pie?

杜力想了一下,回答道:

——嗯…cake 吧!

老外在国内待久了,尚且会形成台湾腔的散装英语,Anyway,我们也就没必要苛责留学生的散装中文了吧?

没有的词儿让我怎么造?

除了习惯之外,有时候中文夹杂英文,是因为压根儿就没有另一种翻译,或者翻译的中文反而更加生僻,所以为了效率,我们会直接讲英文。

有些东西,如“Google”“FaceBook”“WTO”“KPI”等,我们第一次接触的就是英文,日常使用的也是英文表达,在讲话时,一定是英文语码跑得比中文快得多,所以自然而然就夹在中文里说了。如果还要专门在脑内翻译成中文再讲出来,实在是太麻烦了,而且沟通效率也很低。

想象你在工作的时候,同事突然滑到你旁边,告诉你:

——我的微软办公电子表格处理软件突然崩了,你能帮我看一下吗?

每个人都要反应好几秒,才能莫名其妙地回过神来,Excel就Excel,干嘛突然讲中文?所以在这种情况下,大家一般默认用英文,去他的中文翻译,如果有人连英文都听不懂,那么中文他更加听不懂。

更极端的情况是,有些单词在中文里没有,没有就是没有,所以英文是唯一准确的翻译。譬如你回国后跟朋友聊天,house可以说是别墅,townhouse是联排别墅,apartment是公寓,那么unit怎么说?

在国外,Unit一般是指三层到五层的小户型公寓,楼层不高但很长,一层楼有3、4户人家,没有电梯、洗衣房等设施,所有住户一起分享楼下的院子。Unit有点像国内的安置房,但又不完全是一回事,所以当你想讲这个东西时,不是大脑里哪种翻译更快的问题,是你只剩下英语这一种翻译模式,自然会脱口而出“unit”这个单词。

unit长这样

这种翻译的困境在于,中文和英文并不是一一对应的,有些单词很相似,有些词却存在差异性,怎么翻译都无法弥补,如果硬要把英文说成中文,只能造成意义的缺失。

翻译家和语言学家Nida曾提出了“文化词语”这个概念,认为语言是文化的一部分,任何文本的意义都直接或者间接地反映源语言的文化,所以词语的最终意义也只能在相应的文化中去寻找答案。

Language is part of the culture, themeaning of any text, directly or indirectly, anti -Picture a correspondingculture, words meaning ultimately only to find its corresponding culture.

由于文化的不同,不同语言系统里的词语也是不尽相通的,有些词看起来相似,但词语背后承载的民族信息却不相同;有些词在其他文化框架里不存在,只能用源语言表达。说到底,你不能凭空造个词出来。

譬如留学生们很常用的presentation、assignment、essay、paper等词,由于国内外的教育方式不同,英文单词能够微妙且清晰地分辨出是哪一种作业;如果硬要翻译成中文,“小组展示”“课堂作业”“文章”“论文”等,则会失去很多框架意义。

除了英文,其他语言系统里也有一些中文无法表达的词语。

譬如丹麦语的“Smørhul”,是英文“butter hole”的意思,喝粥的时候扒开一个小洞,加一些黄油进去。这个词还有一些引申意义,是指两个好朋友窝在床上,会有小朋友或者猫猫狗狗特别爱凑过来,填满床的一个间隙,这个间隙也叫“Smørhul”。非常微妙和软萌的一个词,中文没有对应的单词,要表达这个感觉,可能得写一首诗。

德语也有一些比较中二的表达,譬如“Heimweh”是指思念家乡的痛苦,“Lebensmüde”指厌倦了生活本身而产生的疲惫感, “Torschlusspanik”是指由于年龄增长,对自己梦想无法完成的恐惧。

总而言之,语言和语言之间并不相通,如果非要把所有英文单词翻译成中文,那我只能感到“Weltschmerz”(指因为世界的不完美而感觉到的心痛)。

大家心里都有b数

有些英文单词明明可以翻译成中文,但大家仍然坚持夹在中文里讲,譬如最饱受诟病的“外企话术”:

——目前这个Campaign是Andrew own的,我和Fiona support,所以他不confrim的话CPS没法排,那样我是不会on brief的。

稍微正常一点的版本:

——这个项目的原则是“ASAP”,我觉得我们的报价是能Cover住的。

曾有人质疑,两个中国人之间为何要讲英文?其实,这些英语在某种程度上并不是英语本身,而更像一个体系的黑话,说这些话并不是为了装逼,而是为了更好和体系内的人沟通,在体系内说体系内的话,拉近距离,显得亲近,对体系外的人说体系内的话,则显得装逼

当你置身于一种规约化语境中时,交谈双方都拥有一种“标识性尺度”,意味着大家都明白,这个场合该讲什么话,用哪种语码,大家心里都有一套标准话术,而有些话术就是英文单词。

譬如录综艺节目不会讲“提到”,而是用“cue”;粉丝之间会说“zqsg”“xswl”“nsdd”等;Rap圈的术语更多,譬如“freestyle”“Punchilne”“flow”“beats”等等,哦对了,还有“skr skr”。这些外人乍一听不伦不类的单词,其实是群体内部的术语,是为了方便内部人士沟通的。

一群后期之间的对话

类似的例子还有,留学生之间的常用句式:

——抱歉今天没办法陪大家去downtown逛街,我有assigment要找tutor复习。等midterm过了我们再约时间吧。我GPA最近很操蛋,而且requirement还差六个credit,不恶补不行。

程序员之间的术语更多,基本全是英文:bug/debug 、feedback、FPGA、FIFO等等。他们日常交流切磋代码心得时,基本都是中文里面夹英文单词,如果非要他们全部换成中文,真的没必要,因为工具书上也是这么写的,内部沟通很顺畅。

聊得多欢啊

正如上文所言,语言的目的就是让对方明白你的意思,所以很多中英夹杂的主要原因,就是为了提高交流的效率与沟通的速度。当然,要讲术语之前,首先得确认对方是圈内的人,毕竟你效率再高,对方也要能解码才行。

Anyway,如何分辨对方是装逼还是正常讲话呢?

——明天我朋友有个Assignment要Due。

这是讲话。

——Tomorrow我的Friend要交个作业。

这是装X。

参考文献:

#吴京的微博有多好笑#来自偶像包袱走失中心 – 微博 https://weibo.com/6967304132/IaphF1nw1?type=comment#_rnd1570689089098

为什么有些人喜欢中文夹英文单词?这是出于什么心态?- 知乎 https://www.zhihu.com/question/279293448

生活在高语境国家,拥有低语境思维该怎么办?- 知乎 https://www.zhihu.com/question/31103695

为什么大家不喜欢中文夹英文的说话方式?- 知乎 https://www.zhihu.com/question/22208250

关臣. 框架语义下中英文化词语的翻译策略[J]. 英语广场, 2019(8).

王荣富, 唐祖莲, WANGRong-fu, et al. 英语文化在翻译中的失落和不达[J]. 湖南工程学院学报(社会科学版), 2005(3).

丝袜诱惑真的那么吸引人吗?

亚马逊应用商店升级为支持Android 12,并为Microsoft win11 wsa提供应用程序

IT之家 12 月 19 日消息,亚马逊的 Appstore 是 Google Play 商店的替代品,但它的库要小一些。此前,亚马逊与微软合作,将该应用商店带到了 Win11 中,使用户能够在 Windows 安卓子系统(WSA)上运行安卓应用程序。

安卓 12 于 10 月份推出后,用户一直在报告亚马逊 Appstore 的问题,包括无法安装 App,甚至无法打开以前安装的 App。

当时,有人推测该问题是由于亚马逊内置的 DRM 与安卓 12 之间兼容性差造成的。亚马逊也表示该公司正在研究解决方案,但并未详细说明。

在两个月后,亚马逊 Appstore 终于推出了一个更新,解决了安卓 12 用户在使用 AppStore 时遇到的问题。在给 Engadget 的一份声明中,亚马逊发言人表示:

我们已针对升级到安卓 12 的亚马逊 Appstore 用户发布了修复程序,正在联系用户,提供更新 Appstore 的步骤,对于由此造成的任何困扰,我们深表歉意。

IT之家了解到,微软在 Win11 安卓子系统的开发文档中表示,App 必须在亚马逊 Appstore 中可用,才能在 Windows 11 设备上运行。

亚马逊 Appstore 的升级适配,意味着微软 Win11 安卓子系统如果升级到安卓 12,也能够通过亚马逊 Appstore 安装应用了。不过何时升级,依然还是个未知数。

谷歌自主研发的SOC:5nm工艺,今年将登陆像素智能手机?

西(公众号:aichip001

编译 | 高歌

编辑 |

芯东西4月12日消息,根据科技媒体SlashGear报道,谷歌的自研SoC芯片将会在今年晚些时候出现在谷歌Pixel 6智能手机和另外一台设备上。目前其芯片参数已经曝光了一部分,可能会为谷歌Pixel系列智能手机提供更好的AI体验,并且将降低其手机成本。

去年,谷歌首席执行官桑达尔·皮查伊(Sundar Pichai)发表声明称,谷歌将在硬件方面投入大量资金,并为2021年制定了完善的技术路线图。这使许多技术专家预测,谷歌将设计自己的SoC芯片,并可能用于谷歌的Pixel系列和Chromebook笔记本电脑上。

一、GS101:不是A78?TPU助力机器学习

据SlashGear报道,谷歌的自研芯片研发代号Whitechapel(白教堂),基于5nm工艺,在谷歌的内部代号为GS101。这款芯片将通过TPU(张量处理单元)进行三集群(cluster)设置,可以加速机器学习,使用户获得更好的AI体验。

SlashGear猜测,GS101将会有8个CPU内核,包括两个Cortex-A76内核和四个较小的Cortex-A55内核,而没有采用更新的A78内核。GS101的GPU可能会使用Arm代号“Borr”的Mali GPU设计,此外三星的Exynos软件组件也可能存在于GS101中。而GS101的5G基带则可能选择高通的X60或X65。

根据报道,该芯片可能会在两种Pixel手机上亮相,最有可能的是Pixel 5和Pixel 4A的后继产品,其中可能性最高的就是预定于今年10月发布的Pixel 6。

科技博客9to5Google曾提到,谷歌的自研芯片很可能将会搭载在代号分别为“Raven”和“Oriole”(乌鸦和黄鹂)的两台设备上。

其中一台设备很可能是Pixel 6智能手机,另一台则可能是Pixel 5A。GS101可能具备三星的Exynos处理器的血统,并且在Slider平台上构建的。

不过由于芯片短缺,谷歌已取消了Pixel 5A的亮相。因此GS101登上Pixel 5A的时间可能会比预期更晚,也可能将只有Pixel 6搭载GS101率先亮相。

二、自研芯片优势:摆脱高通,成本更低

智能手机的SoC芯片往往可以对手机的软、硬件进行更好的控制,并提供电池优化、RAM管理等功能。与第三方芯片相比,自研芯片可以在智能手机设备低内存、低电池容量时获得最大程度的性能提升。

此外,由于高通将芯片更新周期限制为3年,谷歌等厂商也只能提供三年的更新支持。其竞争对手苹果则为其设备提供6到7年的更新支持,使得谷歌在竞争中处于下风。

此外,自研SoC芯片最明显的长处是成本优势。去年搭载骁龙765的Pixel 5被其他厂商搭载骁龙865的智能手机盖过了风头。如果谷歌采用了自研芯片,部分从高通购买SoC的资金就可以用于优化设备的核心功能,令用户获得更好的使用体验。

需要注意的是,Whitechapel处理器并非只是谷歌内部在进行开发,三星的大规模系统集成部门(SLSI)也将与谷歌一起开发该芯片,其核心组件可能将类似于Arm Cortex和Mali GPU,借助三星Exynos,Whitechapel有可能将在未来几年和高通或苹果芯片进行竞争。

虽然现在三星Exynos与苹果A14、高通骁龙888相比还有很多不足,但是三星与谷歌如果可以密切合作,或许可以对手机SoC芯片市场造成一定冲击。

结语:长远布局将是谷歌自研芯片关键

对谷歌而言,投入大量资源开发基于5nm工艺的芯片是一回事,对该项目进行长远规划、布局又是另一回事。除了资金以外,耐心和毅力将是谷歌自研芯片发展的关键。

苹果从开始造芯到现在,经历了三十年之久。谷歌芯片如果想要真正发挥潜力,还需要花费很久的时间对智能手机、笔记本等平台进行调整。一旦谷歌造芯成功,其安卓系统与自家芯片的协同也将为谷歌智能手机和笔记本带来一定优势。

来源:SlashGear、9to5Google

谷歌在tensorflow Lite机器学习框架上实现新突破

2017年,I / O开发者大会的众多公告之一就是移动设备上的机器学习的TensorFlow Lite。从今天开始,Android和iOS优化版的ML库现在可以作为开发者预览版了。

谷歌I/O开发者大会

谷歌称这款名为“TensorFlow”的Lite版本在TensorFlow Mobile的基础上进行了演变,该公司将在移动和嵌入式设备上部署机器学习模型。Android工程副总裁戴夫·伯克指出,这是“在多种多样芯片生态系统中实现硬件加速神经网络处理的关键一步。”

TensorFlow Lite的内存占用很低,这使得它对移动设备上可用的有限资源的征税减少,同时也减少了处理器的密集性,以使应用程序快速运行。

TensorFlow Lite被视为TensorFlow Mobile的替代品,但考虑到预览状态,TensorFlow Mobile是目前稳定应用的选择。TensorFlow Mobile允许开发人员在移动设备上集成在桌面环境中工作的TensorFlow模型。然而,使用TensorFlow Lite创建的应用程序将比使用TensorFlow Mobile的类似应用程序更轻、更快。但并不是所有的用例都得到了TensorFlow Lite的支持,目前有三种模式进行了训练和优化。

模型

目前它仍然在“积极开发”中,这个最初的版本关注的是关键模型的性能,也就是说,它是经过优化和培训的:

  • MobileNet:一种能够识别1000个不同对象类的视觉模型,专门为在移动和嵌入式设备上高效执行而设计

  • Inception v3:一个图像识别模型,功能类似于MobileNet,虽然体积大了些,但它能提供更高的准确性

  • Smart Reply:一种设备上的对话模式,能够在接收到聊天信息之后,提供触发性应答。第一方和第三方的通信应用可以在Android Wear上使用

TensorFlow Lite专注于三个领域:

  • 轻量级:支持对设备机器学习模型进行一个小型二进制规模和快速初始化/启动的要求满足

  • 跨平台:可以在许多不同的平台上运行,先从Android和iOS开始

  • 高速:对移动设备进行快速优化,包括显著提高模型加载次数,支持硬件加速

架构

组件

  • TensorFlow 模型:一个保存在磁盘上训练好的TensorFlow 模型

  • TensorFlow Lite转换器:一个将模型转换为TensorFlow Lite文件格式的程序

  • TensorFlow 模型文件:基于FlatBuffers格式的模型文件,已针对最大速度和最小尺寸进行了优化

现在越来越多的移动设备使用特制的定制硬件来更有效地处理ML的工作负载”。因此,它支持使用Android 8.1开发者预览版的Android神经网络API。即使没有加速器硬件,TensorFlow Lite也可以在CPU上运行。

虽然你可以通过基于TensorFlow Lite的应用程序来处理设备上的新数据,但在这一点上,实际上不可能在设备本身上训练新的机器学习模型。在它目前的形式中,TensorFlow Lite支持推理而不是训练。

从框架的优缺点开始,这是一个介绍tensorflow的极简教程

随着 Tensorflow 在研究及产品中的应用日益广泛,很多开发者及研究者都希望能深入学习这一深度学习框架。而在昨天机器之心发起的框架投票中,2144 位参与者中有 1441 位都在使用 TensorFlow 框架,是所有框架中使用率最高的。但 TensorFLow 这种静态计算图有一定的学习成本,因此也阻挡了很多初学者入坑。本文介绍了学习 TensorFlow 的系列教程,旨在通过简单的理论与实践帮助初学者一步步掌握 TensorFlow 的编程技巧。这一系列教程分为 6 部分,从为什么选择 TensorFlow 到卷积神经网络的实现,介绍了初学者所需要的技能。机器之心在本文介绍了 PyTorch 和 Caffe 等深度学习框架的优缺点及 TensorFlow 基础,包括静态计算图、张量、TensorBoard 可视化和模型参数的保存等。

机器之心此前也介绍过很多 TensorFlow 的学习资源,读者可结合这些资源阅读该系列教程:

学习了!谷歌今日上线基于 TensorFlow 的机器学习速成课程(中文版)机器之心 GitHub 项目:从零开始用 TensorFlow 搭建卷积神经网络教程 | 从零开始:TensorFlow 机器学习模型快速部署指南分布式 TensorFlow 入坑指南:从实例到代码带你玩转多机器深度学习三天速成!香港科技大学 TensorFlow 课件分享TensorFlow 从基础到实战:一步步教你创建交通标志分类神经网络为什么选择 TensorFlow?在本文中,我们将对比当前最流行的深度学习框架(包括 Caffe、Theano、PyTorch、TensorFlow 和 Keras),帮助你为应用选择最合适的框架。

1. Caffe:第一个主流产品级深度学习库,于 2014 年由 UC Berkeley 启动。

优点:

快速支持 GPU漂亮的 Matlab 和 Python 接口缺点:

不灵活。在 Caffe 中,每个节点被当做一个层,因此如果你想要一种新的层类型,你需要定义完整的前向、后向和梯度更新过程。这些层是网络的构建模块,你需要在无穷无尽的列表中进行选择。(相反,在 TensorFlow 中,每个节点被当做一个张量运算例如矩阵相加、相乘或卷积。你可以轻易地定义一个层作为这些运算的组合。因此 TensorFlow 的构建模块更小巧,允许更灵活的模块化。)需要大量的非必要冗长代码。如果你希望同时支持 CPU 和 GPU,你需要为每一个实现额外的函数。你还需要使用普通的文本编辑器来定义你的模型。真令人头疼!几乎每个人都希望程序化地定义模型,因为这有利于不同组件之间的模块化。有趣的是,Caffe 的主要架构师现在在 TensorFlow 团队工作。专一性。仅定位在计算机视觉(但做得很不错)。不是以 Python 编写!如果你希望引入新的变动,你需要在 C++和 CUDA 上编程(对于更小的变动,你可以使用它的 Python 和 Matlab 接口)。糟糕的文档。安装比较困难!有大量的依赖包。只有少量种类的输入格式,仅有一种输出格式 HDF5(虽然你总是可以使用它的 Python/C++/Matlab 接口来运行,并从中得到输出数据)。不适用于构建循环网络。2. Theano:由蒙特利尔大学研究团队构建。Theano 的顶层构建了数值开源深度库,包括 Keras、Lasagne 和 Blocks。Yoshua Bengio 在 2017 年 9 月 28 日宣布,Theano 的开发将终止。因此实际上 Theano 已死!

优点:

计算图的抽象很漂亮(可媲美 TensorFlow)为 CPU 和 GPU 都做了优化很好地适应数值优化任务高级封装(Keras、Lasagne)缺点:

原始的 Theano 只有比较低级的 APIimport numpy for _ in range(T): h = torch.matmul(W, h) + b大型模型可能需要很长的编译时间不支持多 GPU错误信息可能没有帮助(有时候令人懊恼)3. Pytorch:2017 年 1 月,Facebook 将 Python 版本的 Torch 库(用 Lua 编写)开源。

优点:

提供动态计算图(意味着图是在运行时生成的),允许你处理可变长度的输入和输出,例如,在使用 RNN 时非常有用。另一个例子是,在 PyTorch 中,可以使用标准 Python 语法编写 for 循环语句。大量预训练模型大量易于组合的模块化组件易于编写自己的图层类型,易于在 GPU 上运行「Tensorboard」缺少一些关键功能时,「Losswise」可以作为 Pytorch 的替代品缺点:

正式文档以外的参考资料/资源有限无商业支持4. Tensorflow:由较低级别的符号计算库(如 Theano)与较高级别的网络规范库(如 Blocks 和 Lasagne)组合而成。

优点:

由谷歌开发、维护,因此可以保障支持、开发的持续性。巨大、活跃的社区网络训练的低级、高级接口「Tensorboard」是一款强大的可视化套件,旨在跟踪网络拓扑和性能,使调试更加简单。用 Python 编写(尽管某些对性能有重要影响的部分是用 C++实现的),这是一种颇具可读性的开发语言支持多 GPU。因此可以在不同的计算机上自由运行代码,而不必停止或重新启动程序比基于 Theano 的选项更快的模型编译编译时间比 Theano 短TensorFlow 不仅支持深度学习,还有支持强化学习和其他算法的工具。缺点:

计算图是纯 Python 的,因此速度较慢图构造是静态的,意味着图必须先被「编译」再运行5. Keras:Keras 是一个更高级、对用户最友好的 API,具有可配置的后端,由 Google Brain 团队成员 Francis Chollet 编写和维护。

优点:

提供高级 API 来构建深度学习模型,使其易于阅读和使用编写规范的文档大型、活跃的社区位于其他深度学习库(如 Theano 和 Tensorflow,可配置)之上使用面向对象的设计,因此所有内容都被视为对象(如网络层、参数、优化器等)。所有模型参数都可以作为对象属性进行访问。例如:

model.layers[3].output 将提供模型的第三层model.layers[3].weights 是符号权重张量的列表缺点:

由于用途非常普遍,所以在性能方面比较欠缺与 Tensorflow 后端配合使用时会出现性能问题(因为并未针对其进行优化),但与 Theano 后端配合使用时效果良好不像 Tensorflow 或 PyTorch 那样灵活TensorFlow 基础TensorFlow 是一种采用数据流图(data flow graphs),用于数值计算的开源软件库。其中 Tensor 代表传递的数据为张量(多维数组),Flow 代表使用计算图进行运算。数据流图用「结点」(nodes)和「边」(edges)组成的有向图来描述数学运算。「结点」一般用来表示施加的数学操作,但也可以表示数据输入的起点和输出的终点,或者是读取/写入持久变量(persistent variable)的终点。边表示结点之间的输入/输出关系。这些数据边可以传送维度可动态调整的多维数据数组,即张量(tensor)。

计算图与会话学习 Tensorflow 的第一步是了解它的主要特色——「计算图」方法。基本上所有的 Tensorflow 代码都包含两个重要部分:

1. 创建「计算图」,表示计算的数据流

2. 运行「会话」,执行图中的运算

事实上,TensorFlow 将计算的定义与其执行分开。这两个部分将在以下各节中详细说明。在此之前,请记住第一步是导入 Tensorflolibrary!

import tensorflow as tf这样,Python 就可以访问 TensorFlow 的所有类、方法和符号。使用此命令,TensorFlow 库将在别名「tf」下导入,以便以后我们可以使用它而不必每次键入其全称「TensorFlow」。

谷歌发布NSL:tensorflow图形数据机器学习框架

谷歌今日推出了名叫 NSL 的神经结构学习框架,作为一个开源架构,其旨在使用神经图的学习方法,对带有图形和结构化数据的神经网络展开训练。据悉,NSL 能够与 TensorFlow 机器学习平台配合使用,适用于有经验或缺乏经验的机器学习从业者。NSL 能够制作计算机视觉模型、执行自然语言处理(NLP)、从医疗记录或知识图等图形数据集中运行预测。

(图自:Google,via VentureBeat)

TensorFlow 工程师在今日的一篇博客文章中表示:“在训练期间使用结构化信号,能够让开发者获得更高的模型精度,尤其是数据量相对较小的时候”。

此外,结构化信号训练可带来更强大的模型,这些技术已被 Google 广泛应用,以提升模型性能,如学习图像语义嵌入(Image Semantic Embedding)。

神经结构学习框架(NSL)可以监督、半监督、或无监督地学习,对训练期间的图形信号进行正规化的建模。在某些情况下,开发者甚至用不到五行以上的代码。

值得一提的是,新框架还可帮助开发者构建数据和 API 工具,用于创建具有少量代码的对抗性训练示例。

今年 4 月的时候,Google Cloud 在 BigQuery 连接表(connected sheets)和AutoML Tables中的结构化数据,引入了其它的解决方案。

最后,上周 Google AI(前 Google Research)宣布了开源 SM3 。作为一款大型语义理解模型的优化器,它能够为 Google BERT 和 OpenAI 的 GPT2 等带来优化。