2018年8月31日星期五

读博有风险,入坑需谨慎

选自fast.ai

作者:Rachel Thomas

机器之心编译

参与:高璇、晓坤

人工智能界的特殊性令人难以分清其在学术界和产业界之间的界限。AI 学术界的「排外」现象到底是由于开放性还是有先来者在守门,近日在 Reddit 上就出现了这样的讨论。但该话题仅聚焦于学术研究,读博其实是个人发展的一部分,学术研究也是整个 AI 行业的一部分,Rachel Thomas 在这里就向我们提供了更广的视角。

Rachel Thomas 是致力于 AI 开放教育的 fast.ai 联合创始人之一,她在本文讨论了在考虑读博之前,如何结合学术界和产业界的视角看待整个行业以及个人发展,并结合自身经验给出了中肯的建议。

我最新的帖子 Ask-A-Data-Scientist 对是否攻读博士学位的问题做出了解答。之前的 Ask-A-Data-Scientist 建议列表链接:http://www.fast.ai/topics/#advice。

问题:我是一名对机器学习充满热情的本科生,我对获得博士学位感到有点压力。进入这个行业几年后再考虑回到学校会更有意义吗?如果您有任何建议告知,我将不胜感激。

关于是否读博的对话经常会有选择性偏差的影响:考虑读博的人会向已拿到博士学位的人寻求建议。另一方面,有许多人在没有博士学位的情况下从事有趣且前沿的工作,他们不太会被问及这一问题。而其他例如极高的研究生抑郁率或读博的机会成本等重要因素,都很少被讨论。作为拥有数学博士学位的人,我很遗憾花了这么多年时间专注于一个狭窄的领域,同时忽略了许多其他的重要技能。我一参加工作,就发现自己一直在学习各类关键技能和经验!

了解机会成本

我严重低估了通过产业所能得到的收获。我曾经认为不断地学习的最好方法是留在学术界,并且我没有很好地把控读博的机会成本。我的本科经历挺传奇,我一直都很优秀并喜欢待在学校。在学校拿薪水的想法听起来就很美妙!

但我后来才意识到,我的传统学术成就反而成了我的弱点,因为我学会的只是如何解决别人给我的问题,而不是如何自己发现和解决问题。我认为对于许多优秀学生(包括以前的自己),读博是一张「安全牌」:这是一条光荣且意义明确的路。但这只是一种推迟人生重大节点到来的方式:学着去设定一个学术体系之外的目标,并与你的内在动机和价值观都更深刻地联系起来。

当时,我觉得我在博士期间学到了很多东西:学习高级课程、阅读论文、开展研究、定期演讲、在我的领域组织两次会议、协调研究生课程,在我的院系担任学生代表以及撰写论文。事后看来,所有这些都只是我意识到的技能的冰山一角,并且其中许多技能都难以迁移。例如由于结构和激励非常不同,学术写作与我通过博客(受众更广)写作就非常不同,学术策略与创业策略也有很大差异。

你应该读博吗?照片来自 #WOCinTech Chat

在我 27 岁时,我完成了博士学位,并开始了我的第一份全职工作(与我在研究所通过各种研究和教学奖学金获得的津贴不同)。我需要了解很多关于我从事的行业和实际技能的主要差异。尽管在高中学习了 2 年的 C ++,在大学辅修了 CS,并在数学博士期间做了一些编程项目,但我更专注于计算机科学的理论部分,缺乏许多实用的计算机技能。相反,我的 fast.ai 联合创始人 Jeremy Howard 在 18 岁就有了第一份全职工作,当时他是麦肯锡的一名顾问,并且在我刚进入社会时,Jeremy 从事全职工作已经几乎十年。期间他已经成立了两家目前仍在运营的初创公司。在我读博期间,我本可以学到很多其他的技术。

需要明确的是,生活不是一场赛跑。你可以在任何年龄进入科技行业,学习新技能。但科技行业是吃「青春饭」的,年轻创业者得到的赞美像是「罂粟」。然而,我再也没有 20 岁出头的精力了 (尽管我现在吃草撸铁泡枸杞,但我感觉还是不一样的)。我后悔太过于关注一个狭窄的领域和忽略了其他,这一项就浪费了我大量时间和精力。

你不需要博士学位

我想到了下面没有读博的人他们在深度学习中都从事有趣且前沿的工作(这个列表不完整,还有很多人):

  • Chris Olah,distill.pub 的联合编辑,富有洞察力的可视化创建者,Google Brain 的研究员(没有大学学位)。

  • Jeremy Howard,fast.ai 的联合创始人,Enlitic 的创始人(第一个将深度学习应用于医学的初创公司),之前排名第一的 Kaggler 和 Kaggle 总裁,fastmail 和 Optimal Decisions Group 的创始人。

  • David Ha,Sketch-RNN 的创建者,Google Brain 的研究员。

  • Smerity,曾经 Salesforce / MetaMind 研究员,AWD-LSTM 的发明者,创业公司创始人。

  • Pete Warden,Google Brain 的研究工程师和 TensorFlow 移动端的技术负责人,JetPack 的创始人(被 Google 收购),O'Reilly ebook 中《使用 TensorFlow 构建移动应用程序》的作者。

  • Greg Brockman,CTO 和 OpenAI 的联合创始人,领导团队的 DOTA 工作(没有大学学位)。

  • Catherine Olsson,Google Brain 的研究工程师,曾帮助建立 OpenAI Gym。

  • Sara Hooker,Google Brain 研究员,致力于解释性和模型压缩,非营利性 Delta Analytics 数据的创始人。

  • Denny Britz,以前效力 Google Brain,现在在 Berkeley 的 Spark 工作,为 WildML 写博客。

  • Helena Sarin,深度学习研究人员,创造创新艺术作品。

  • Sylvain Gugger,fast.ai 的第一位研究员,对 AdamW 和超融合进行了研究。

  • Mariya Yao,Metamaven 的 CTO,TOPBOTS 的主编,应用人工智能的作者,Duke 团队的一员,在 DARPA 的大挑战中获得第二名。

  • Devaki Raj,创业公司 CrowdAI 的 CEO 兼联合创始人,将人工智能应用于卫星图像,之前曾在谷歌地图和 Android 工作过。

  • Choong Ng,Vertex.ai(被英特尔收购)的 CEO 兼联合创始人,创建了 PlaidML,可以快速轻松地在任何设备上进行深度学习

  • Brian Brackeen,计算机视觉初创公司 Kairos 创始人兼 CEO,采取了令人钦佩的立场反对利用法律强行使用面部识别。

在我所有的工作中,包括在技术上「需要」博士学位的工作,我都有一些没有硕士学位的队友。而没有博士学位的队友通常比那些拥有博士学位的人办事更成效,给我更多帮助(也许是因为他们有更多的实践经验)。

当然,有很多有博士学位的人做过有趣且有价值的工作,比如 Arvind Narayanan、Latanya Sweeney 、Timnit Gebru、,Moustapha Cisse、Yann Dauphin、Shakir Mohamed、Leslie Smith、Elin LeDell、Andrea Frome 等等。我非常钦佩我列出的所有人,而且我绝不认为博士学位没有用或者不好。

研究生的抑郁、孤独和心理健康问题

67% 的研究生说他们在过去一年里至少有一次感到绝望;54% 的人情绪低落,无法正常工作;2004 年的一项调查发现,近 10% 的人曾考虑过自杀。相比之下,美国国家心理健康研究所(National Institute of Mental Health)对 UC Berkeley 学生的研究表明,估计有 9.5% 的美国成年人曾患有抑郁症。

照片来自 #WOCinTech Chat

对于许多人来说,读研究生并不是一种乐趣或个人的充实。它可能受很多因素影响,例如可怜的薪资、不确定的就业条件、主管的无理要求、无关的研究项目,以及教职员工和本科生(他们经常表现得像管理人员和顾客一样)的无礼对待。研究所每天都对鸡毛蒜皮的小事进行打击并扼杀学生自信心。所有这一切都因担心一切都是徒劳而加剧;一位教授在《Chronicle of Higher Education》上写道:「你是个有用的傻瓜」,他在一篇文章中特别提到了人文学科的学生,但这也适用于许多 STEM 学生。在过去的十年里,我几乎不知道有哪个研究生不痛苦。因为我会在这个网站上写专栏文章,所以一些人告诉我,他们的研究生生涯时刻伴随着自杀的念头。更常见的是,研究生会遭受诸如体重波动、疲劳、头痛、胃痛、焦虑和酗酒等未经治疗的慢性疾病的折磨。

虽然性别歧视和骚扰使我对读研有了负面感受,但我的许多男同学也很悲惨,因为他们遭到教授的孤立、欺凌或羞辱,还有一种剥削制度,由自大严苛的等级制度和对威望的迷信所组成。美国国家科学院的一名综合报告的作者说:「科学家们视严苛和批评为残忍。」

学术界的性别歧视和种族歧视

美国国家科学院的一份报告指出,在科学、工程和医学领域,20%-50% 的女学生和超过 50% 的女教师遭受过骚扰。在对从事 STEM 研究的 60 名有色人种女性的采访中,100% 的女性都遭到过歧视,她们所面对的负面刻板印象因种族而异。

由于潜意识的偏见(特别当他们是自学的时候),他们会受到更多的调查,因此文凭对弱势群体的人们可能更重要。不幸的是,由于高等教育中的性别歧视和种族歧视,弱势群体可能更需要文凭,但他们在争取这些文凭时也可能要面临更险恶的环境。对此我没有答案,但我想表明这种紧张关系。

在普林斯顿大学获得数学博士学位的黑人女性 Piper Harron,在她的论文中写道:

受尊重的研究数学由态度确定的男性主导。即使允许个体差异,现在仍然存在一种压抑的气氛,而那些利用它获得成功的人精心维护,甚至大力营造这种氛围。正如所有优秀的研究生做的那样,我试图在数学研究上去适应它。我去融入这种气氛并将我的态度隐藏于心。我很痛苦,也一度濒临失败。问题不在于个人,而是一种自我保护机制。从外部看,所有的背叛都是你自己造成的。

恶劣的研究所比恶劣的工作更糟糕

我认为我在研究所的时间是我最糟心的时期之一。虽然我给出的处理恶劣工作的大部分建议同样适用于恶劣的研究所,但有一个区别很关键:换研究生项目要比换工作难得多。这使学生和教授之间的权力差异远大于技术行业中员工和老板之间的权力差异(这意味着权利滥用或剥削的可能性更大)。

我知道有些人换了导师,甚至换了项目,这确实可以让你回到过去。然而留在糟糕的项目中的成本(身心健康方面,以及机会成本方面)会非常高,我知道有些人花了数年时间才恢复过来。如果你是学生签证的移民并且必须考虑签证/居留问题,那就更麻烦。对于糟心的研究所,没什么简单的解决方案。

高等教育正在发生变化

唯一需要博士学位的情况就是成为一名教授。然而,高等教育正在发生很大变化:向辅助化转变,博士学位过剩使美国研究经费预算大幅削减,越来越多的学校让终身教职员工下岗,为一些博士后采取一些重大举措,以及无法继续给本科生提供助学贷款。我不确定高等教育的未来是什么,但我认为它将与过去不同(这在我改变职业目标的过程中发挥了重要作用)。

当我听到本科生(包括年轻的我自己)说他们认定自己要成为教授时,我是持怀疑态度的。即使他们有过实习或兼职,本科生也很难深入且全面的了解职业选择。此外在本科期间,学生们的周围主要都是教授和其他学生。

如 Coursera 之类的编码训练营和 MOOC 都是直到我技术转型时才被发明的,但两者都很有用并且对教育产生了重大影响。我已经从许多在线课程中受益,如果编码训练营早存在 10 年或 15 年,我将获益更多。在过去的几年里,我既是一名训练营的讲师,也是建立 fast.ai 的 MOOC 的联合创始人,包括应用于编码的实用深度学习和计算线性代数。我已经看到这些如火如荼的新教育形式带来的强大作用。(除此之外,也有很多无用的或粗制滥造的训练营和 MOOCs,研究也一样。)

在考虑读博时,一定要仔细权衡机会成本和风险,并考虑各类人的经验:那些在没有博士学位的情况下取得成功的人、有许多负面研究生经历的人,以及那些在传统的学术道路上取得成功的人。

原文链接:http://www.fast.ai/2018/08/27/grad-school/

]]> 原文: https://ift.tt/2LMKmDW
RSS Feed

机器知心


Unsubscribe from these notifications or sign in to manage your Email Applets.

IFTTT

这些Python代码技巧,你肯定还不知道

被人工智能捧红的 Python 已是一种发展完善且非常多样化的语言,其中肯定有一些你尚未发现的功能。本文或许能够让你学到一些新技巧。

Python 是世界上最流行、热门的编程语言之一,原因很多,比如:

  • 易于学习

  • 超高的通用性

  • 具备大量模块和库

本文将分享一些使用 Python 的技巧,顺序按照 A-Z 排列。

all or any

Python 非常受欢迎的原因之一是其可读性和表达性。

人们还经常把 Python 笑称为「可执行伪码(executable pseudocode)」。但是,当你可以编写这样的代码时,很难去反驳这种言论:

x = [True, True, False] if any(x):     print("At least one True") if all(x):     print("Not one False") if any(x) and not all(x):     print("At least one True and one False")

bashplotlib

想在控制台中绘图吗?

$ pip install bashplotlib

使用上面的行,即可在控制台中绘图。

collections

Python 有一些很棒的默认数据类型,但有时候它们可能不会尽如你意。

不过,Python 标准库提供了 collections 模块。这个方便的附加组件可以为你提供更多数据类型。

collections 模块:https://ift.tt/1nRrsxq

from collections import OrderedDict, Counter # Remembers the order the keys are added! x = OrderedDict(a=1, b=2, c=3) # Counts the frequency of each character y = Counter("Hello World!")

dir

你是否想过如何查看 Python 对象内部及其具有哪些属性?

输入以下命令行:

>>> dir() >>> dir("Hello World") >>> dir(dir)

当以交互方式运行 Python 时,这可能是一个非常有用的功能,并且可以动态地探索你正在使用的对象和模块。

想要了解更多,点这里:https://ift.tt/1JT5DIK

emoji

是的,真的有。请点击这里:https://ift.tt/2wx56tW

$ pip install emoji

别以为我不知道你会偷偷试它→→

from emoji import emojize print(emojize(":thumbs_up:"))

👍

from __future__ import

Python 流行的一个结果是,总有新版本正在开发中。新版本意味着新功能——除非你的版本已经过时。

不过,别担心。__ future__模块允许用户导入新版 Python 的功能。这简直就像时间旅行,或者魔法什么的。

__ future__模块:https://ift.tt/2MHFkOC

from __future__ import print_function print("Hello World!")

geopy

地理(Geography)对于程序员来说可能是一个具有挑战性的领域。但是 geopy 模块让它变得异常简单。

geopy 模块:https://ift.tt/2wzurDG

$ pip install geopy

它通过抽取一系列不同地理编码服务的 API 来工作,使用户获取一个地方的完整街道地址、纬度、经度,甚至海拔高度。

另外一个有用的功能是距离:它可以用你喜欢的度量单位计算出两个位置之间的距离。

from geopy import GoogleV3 place = "221b Baker Street, London" location = GoogleV3().geocode(place) print(location.address) print(location.location)

howdoi

陷入编码问题,却不记得以前见过的解决方案?需要检查 StackOverflow,但不想离开终端?

那么你需要这个有用的命令行工具:https://github.com/gleitz/howdoi。

$ pip install howdoi

无论你有什么问题都可以问它,它会尽力回答。

$ howdoi vertical align css $ howdoi for loop in java $ howdoi undo commits in git

但是请注意——它会从 StackOverflow 的最高票答案中抓取代码。也就是说它提供的信息并非总是有用……

$ howdoi exit vim

inspect

Python 的 inspect 模块非常有助于理解问题背后的详情。你甚至可以在 inspect 模块上调用其方法!

inspect 模块:https://ift.tt/1vowIyf

下面的代码示例使用 inspect.getsource() 打印自己的源代码。它还使用 inspect.getmodule() 打印定义它的模块。

最后一行代码打印出自己的行号。

import inspect print(inspect.getsource(inspect.getsource)) print(inspect.getmodule(inspect.getmodule)) print(inspect.currentframe().f_lineno)

当然,除了这些琐碎的用途之外,inspect 模块还能帮助你理解代码正在做的事。你还可以用它编写自文档化代码。

Jedi

Jedi 库是一个自动完成和代码分析的库。它使代码编写变得更快、效果更高。

除非你正在开发自己的 IDE,否则你肯定会对使用 Jedi 库作为编辑插件很感兴趣。

Jedi:https://ift.tt/2MFiVl5

你可能已经在使用 Jedi 了。IPython 项目就使用 Jedi 实现代码自动完成功能。

**kwargs

学习任何语言时都会遇到很多里程碑。对于 Python 来说,理解神秘的**kwargs 语法可能算是其中之一。

词典对象前面的双星号可以让你把该词典的内容作为命名参数输入到函数中。

词典的秘钥是参数名,值是传递给函数的值。你甚至不需要称它为 kwargs!

dictionary = {"a": 1, "b": 2} def someFunction(a, b):     print(a + b)     return # these do the same thing: someFunction(**dictionary) someFunction(a=1, b=2)

当你想编写能够处理事先未定义的命名参数的函数时,这个很有用。

列表推导式(List comprehensions)

我最喜欢 Python 编程的原因之一是它的列表推导式(https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions)。

这些表达式使得编写干净易读的代码变得很容易,那些代码读起来几乎像自然语言一样。

关于它们的更多使用信息请查看:https://ift.tt/2wAA2tb

numbers = [1,2,3,4,5,6,7] evens = [x for x in numbers if x % 2 is 0] odds = [y for y in numbers if y not in evens] cities = ['London', 'Dublin', 'Oslo'] def visit(city):     print("Welcome to "+city) for city in cities:     visit(city)

map

Python 通过许多内置功能支持函数式编程。map() 函数是最有用的函数之一——特别是当它与 lambda 函数结合使用时。

lambda 函数:https://ift.tt/2gQSqpB

x = [1, 2, 3] y = map(lambda x : x + 1 , x) # prints out [2,3,4] print(list(y))

在上面的例子中,map() 将一个简单的 lambda 函数应用于 x 中的每个元素。它返回一个 map 对象,该对象可以被转换成可迭代的对象,如列表或元组。

newspaper3k

如果你之前没有见过它,那么我建议你先查看:https://pypi.org/project/newspaper3k/。

它可以帮助你从大量顶级国际出版物中检索到新闻文章和相关元数据。你可以检索图像、文本和作者名。

它还有一些内置的 NLP 功能。

地址:https://ift.tt/2wy6dub

如果你想在下一个项目中使用 BeautifulSoup 或其它 DIY 网页抓取库,那么不如使用$ pip install newspaper3k,既省时又省事,何乐而不为呢?

运算符重载(Operator overloading)

Python 支持运算符重载。

它实际上是一个简单的概念。你有没有想过为什么 Python 允许用户使用 + 运算符来将数字相加,并级联字符串?这就是运算符重载在发挥作用。

你可以使用 Python 的标准运算符号来定义对象,这样你可以在与这些对象相关的语境中使用它们。

class Thing:     def __init__(self, value):         self.__value = value     def __gt__(self, other):         return self.__value > other.__value     def __lt__(self, other):         return self.__value < other.__value something = Thing(100) nothing = Thing(0) # True something > nothing # False something < nothing # Error something + nothing

pprint

Python 的默认 print 函数就可以实现打印功能。但如果尝试打印较大的嵌套对象,就会发现打印结果很丑。

这时 Python 标准库的 pretty printer 模块就可以发挥作用了。该模块可以将复杂的结构化对象以一种易读的格式打印出来。

pretty printer 模块:https://ift.tt/1FKWzEo

Python 开发者的必备技能之一就是处理复杂的数据结构。

import requests import pprint url = 'https://randomuser.me/api/?results=1' users = requests.get(url).json() pprint.pprint(users)

Queue

Python 支持多线程,而这是由 Python 标准库的 Queue 模块支持的。

该模块允许用户实现队列(queue)数据结构。队列数据结构允许用户根据特定的规则添加和检索条目。

『First in, first out』 (FIFO) 队列允许用户按照对象被添加的顺序来检索对象。『Last in, first out』 (LIFO) 队列允许用户首先访问最新添加的对象。

最后,优先级队列(priority queue)允许用户根据对象对应的优先级类别来检索对象。

如何使用 queue 在 Python 中实现多线程编程,示例详见:https://www.tutorialspoint.com/python3/python_multithreading.htm。

__repr__

在 Python 中定义一个类别或对象时,以「官方」方式将对象表示为字符串很有用。例如:

>>> file = open('file.txt', 'r') >>> print(file) 

这使代码 debug 变得简单很多。将字符串添加到类别定义,如下所示:

class someClass:     def __repr__(self):         return "" someInstance = someClass() # prints  print(someInstance)

sh

Python 是一种伟大的脚本语言,不过有时使用标准 os 和 subprocess 库会有点棘手。

sh 库提供了一种不错的替代方案。

sh 库:https://ift.tt/17ODYFp

该库允许用户像使用普通函数一样调用任意程序,这对自动化工作流和任务非常有用。

from sh import * sh.pwd() sh.mkdir('new_folder') sh.touch('new_file.txt') sh.whoami() sh.echo('This is great!')

类型提示(Type hints)

Python 是动态语言。在定义变量、函数、类别等时无需指定数据类型。

这有利于缩短开发周期。但是,简单的类型错误(typing issue)导致的运行时错误真的太烦了。

从 Python 3.5 版本开始,用户可以选择在定义函数时开启类型提示。

def addTwo(x : Int) -> Int:     return x + 2

你还可以定义类型别名:

from typing import List Vector = List[float] Matrix = List[Vector] def addMatrix(a : Matrix, b : Matrix) -> Matrix:   result = []   for i,row in enumerate(a):     result_row =[]     for j, col in enumerate(row):       result_row += [a[i][j] + b[i][j]]     result += [result_row]   return result x = [[1.0, 0.0], [0.0, 1.0]] y = [[2.0, 1.0], [0.0, -2.0]] z = addMatrix(x, y)

尽管非强制,但类型注释可以使代码更易理解。

它们还允许你在运行之前使用类型检查工具捕捉 TypeError。在进行大型复杂项目时执行此类操作是值得的。

uuid

生成通用唯一标识符(Universally Unique ID,UUID)的一种快速简单方法就是使用 Python 标准库的 uuid 模块。

uuid 模块:https://ift.tt/1rsFA5b

import uuid user_id = uuid.uuid4() print(user_id)

这创建了一个随机化后的 128 比特数字,该数字几乎必然是唯一的。

事实上,可以生成 2¹²²可能的 UUID。这个数字超过了 5,000,000,000,000,000,000,000,000,000,000,000,000。

在给定集合中找出重复数字的可能性极低。即使有一万亿 UUID,重复数字存在的概率也远远低于十亿分之一。

虚拟环境(Virtual environment)

这可能是 Python 中我最喜欢的事物了。

你可能同时处理多个 Python 项目。不幸的是,有时候两个项目依赖于相同依赖项的不同版本。那你要安装哪个版本呢?

幸运的是,Python 支持虚拟环境,这使得用户能够充分利用两种环境。见下列行:

python -m venv my-project source my-project/bin/activate pip install all-the-modules 

现在你在一台机器上具备独立的多个 Python 版本了。问题解决!

wikipedia

Wikipedia 拥有一个很棒的 API,允许用户以编程方式访问巨大体量的免费知识和信息。

wikipedia 模块使得访问该 API 非常便捷。

Wikipedia 模块:https://ift.tt/2wC4e79

import wikipedia result = wikipedia.page('freeCodeCamp') print(result.summary) for link in result.links:     print(link)

和真实的维基百科网站类似,该模块支持多种语言、页面消歧、随机页面检索,甚至还具备 donate() 方法。

xkcd

humour 是 Python 语言的一个关键特征,其名称来自英国喜剧片《蒙提·派森的飞行马戏团》(Monty Python and the Flying Circus)。Python 的很多官方文档引用了该喜剧片最著名的剧情。

幽默感并不限于文档。试着运行下列行:

import antigravity

将打开 xkcd 画的 Python 漫画。不要改变这一点,Python。不要改变。

YAML

YAML 代表 『YAML Ain』t Markup Language』。它是一种数据格式语言,是 JSON 的超集。

与 JSON 不同,它可以存储更复杂的对象并引用自己的元素。你还可以编写注释,使其尤其适用于编写配置文件。

PyYAML 模块(https://pyyaml.org/wiki/PyYAMLDocumentation)可以让你在 Python 中使用 YAML。安装:

$ pip install pyyaml

然后导入到项目中:

import yaml

PyYAML 使你能够存储任何数据类型的 Python 对象,以及任何用户定义类别的实例。

zip

给你支最后一招,非常酷。还在用两个列表来组成一部词典吗?

keys = ['a', 'b', 'c'] vals = [1, 2, 3] zipped = dict(zip(keys, vals))

zip() 内置函数使用多个可迭代对象作为输入并返回元组列表。每个元组按位置索引对输入对象的元素进行分组。

你也可以通过调用*zip() 来「解压」对象。

原文链接:https://medium.freecodecamp.org/an-a-z-of-useful-python-tricks-b467524ee747

]]> 原文: https://ift.tt/2MGQ4N5
RSS Feed

机器知心


Unsubscribe from these notifications or sign in to manage your Email Applets.

IFTTT

苹果自动驾驶汽车遭遇首次车祸

苹果公司的自动驾驶汽车在其硅谷总部附近的快速路上遭遇了首次交通事故:在本周五披露的报告中,苹果「被动地」向人们揭示了其自动驾驶项目的更多细节。所幸,这次事故无人受伤。

苹果的高管们从未公开谈论过该公司的自动驾驶汽车计划,但今年 7 月份前员工张晓浪涉嫌窃取商业机密被 FBI 逮捕事件中的法律文件曾经向我们透露了一些信息:苹果公司目前有大约 3.7% 的员工正在参与自动驾驶项目的研究,至少有 5000 人正在从事自动驾驶相关电路,以及「专有芯片」的设计工作。(参见:苹果华人自动驾驶工程师跳槽小鹏汽车前夕被 FBI 逮捕:被指窃取商业机密

自动驾驶对于苹果来说是一个全新的领域,但在这个赛道上已经有了很多强大的竞争者。其中包括谷歌旗下的 Waymo,来自传统汽车行业的通用汽车,以及像 Zoox 这样的创业公司。

在加州机动车辆管理局昨天披露的「涉及自动驾驶汽车碰撞报告」中,我们可以得知:

8 月 24 日,一辆隶属苹果的雷克萨斯 RX 450h 自动驾驶测试汽车以「自动驾驶模式」在加州 Sunnyvale 的 Lawrence 快速路并线向南时遭遇追尾,其时的车速不到每小时 1 英里。肇事车辆为一辆 2016 款的日产 Leaf,追尾时时速约为 15 英里/小时。

此前被媒体拍到的雷克萨斯 RX 自动驾驶测试车,这是一款豪华 SUV。

事故发生的时间为下午 3 时,天气晴朗。报告称,当时苹果的自动驾驶汽车正在并线位置减速,等待安全转向的机会。

报告同时表示,两辆汽车都有损伤,但无人受伤。根据向加州交通监管机构的安全规程,人类驾驶员必须能够控制目前在开放道路上测试的自动驾驶汽车。

通常来说,后车在机动车追尾事故中承担全部责任。但值得注意的是,苹果的汽车在拐弯时选择停止等待,而不是立即并线。或许在事故发生时,自动驾驶系统做出了异于人类驾驶员的决策,从而使得后车判断错误,进而追尾。不过很多时候,即使对于人类来说,转弯并线也不是一件容易的事。

「一个可能的解释是,这辆汽车当时并没有像人类驾驶员那样行动,」卡耐基梅隆大学教授 Phil Koopman 对此表示,他为自动驾驶汽车公司提供咨询。「如果它们不像人们那样开车,那么人们对自动驾驶车辆的期望会产生偏差。」

在路透社的报道中,苹果发言人确认公司已为此提交了事故报告,但拒绝进行进一步的评论。该发言人同时拒绝回答有关本次事故过错方是谁的问题。

事故发生大致位置的谷歌街景图。

在竞争对手们争相加入公共道路测试行列的几年里,苹果一直在努力对自己的项目保密。这家全球市值最大公司首次公开表示对于自动驾驶的兴趣还是在 2016 年。在致美国运输监管机构的一封信中,苹果敦促政府部门不要限制车辆的测试。

去年,苹果获得了加州自动驾驶汽车测试许可证。从去年起,苹果就在路上测试自己的自动驾驶汽车,至今已有 60 多辆汽车获得许可。该公司的研究员们也于去年 11 月发表了他们在汽车领域的首个公开研究成果——一个能够使行人检测变得更加容易的软件系统(参见:终于!苹果首次公开自动驾驶技术研究成果)。

今年 3 月,一辆 Uber 的自动驾驶汽车在亚利桑那州坦佩市的公共道路上与一名行人相撞,并致其死亡。这一事件使得美国交通监管部门对自动驾驶汽车的安全问题充满疑虑,迫使该公司暂停其自驾车测试活动。Uber 宣称将于今年年底让自动驾驶汽车重新上路。

加州机动车辆管理局表示,截至 8 月 31 日,他们已经收到 95 起自动驾驶车辆事故报告。目前已有数十个公司拿到了加州自动驾驶汽车测试许可,但测试期间,车上必须有一名人类安全驾驶员。

参考链接:

]]> 原文: https://ift.tt/2C75R2P
RSS Feed

机器知心


Unsubscribe from these notifications or sign in to manage your Email Applets.

IFTTT

华为最强AI芯980发布:全球首款7nm手机芯,6项世界第一

安妮 雷刚 发自 凹非寺 量子位 报道 | 公众号 QbitAI

"遥遥领先!"

这是华为消费者业务CEO余承东放下的狠话,他说自家即将推出的手机芯片麒麟980,将在全球范围内遥遥领先。

而且领先的不是别家,正是安卓阵营手机芯片寡头高通骁龙,以及苹果为iPhone打造的专属芯片。

于是此言一出,国内外都议论纷纷。有较真的,挖出各种工艺制造、性能提升、AI加持方面的信息;也有吃瓜的,就想坐等余承东是不是会打脸。

现在,答案来了。

在刚刚开幕的2018 IFA德国柏林国际电子消费展会上,华为以"奇点将至"之名,正式对外推出麒麟980

作为最新推出的AI手机SoC芯片,麒麟980全球首次商用领先的TSMC 7nm制造工艺,并基于CPU、GPU、NPU、ISP、DDR设计了全系统融合优化的异构架构。

如余承东所说,这款中国芯,3年开发,有6个业界第一加持:

  • 全球最早商用TSMC 7nm工艺的手机SoC芯片
  • 全球实现基于ARM Cortex-A76 CPU架构进行商业开发
  • 首款搭载双核NPU(Dual-NPU)的移动端芯片
  • 首款搭载最新的Mali-G76 GPU架构的移动端芯片
  • 通信方面率先支持LTE Cat.21,峰值下载速率1.4Gbps达业内最高
  • 内存方面支持全球最快的LPDDR4X颗粒,主频最高可达2133MHz

具体怎么回事,我们一项项看:

全球首款商用7nm手机芯片

想往高性能、低能耗和小体积方向走,就得提升工艺制程。

去年发布的华为970还尚处10nm工艺阵列,今年,麒麟抢占先机,赶在也是7nm制程的高通骁龙855前面,首发了第一款7nm手机芯片。

据TSMC的官方数据统计,相比上一代旗舰——10nm工艺制程的麒麟970,980性能提升约20%能效的提升约40%逻辑电路的密度的提升了60%,即原来的1.6倍。

就意味着,在更小的体积里,这个芯片能够装下更多的晶体管,从而能够实现更强的性能和功能。

在半导体芯片的研发过程里,7nm的工艺制程逼近了硅基半导体工艺的物理极限,还要克服复杂的半导体技术效应和晶体管本身的三维电阻电容带来的影响,麒麟980无异于在针尖上跳舞。

但余承东也强调,种瓜得瓜种豆得豆,这是华为3年攻坚换来的回报。

这位华为高管透露,为了研发麒麟980,华为在2015年就开始研究7nm芯片,2017年进入Soc工程验证,再到2018年进行量产,项目周期长达3年。

其中,1000多位高级半导体专家参与,5000多次的工程验证。

花费多少钱?理查德·余没展开说。

但在此次发布前,外界还多流传着华为斥资3亿美元研发麒麟980的消息。华为方面否定了这一消息,因为芯片为滚动开发,所以具体多少美元并不好界定,但数亿美元是肯定的。

对于研发投入比,华为表示自己做芯片仅仅定位来承载自己的硬件架构,来实现产品差异化、竞争力以及低成本。但从当前发展来看看,无论从竞争力和品牌来看,芯片的投入非常有价值。

不亏。

最新CPU架构

芯片若想好,设计架构少不了。这方面,麒麟980倒也是先行了一步。

作为全球首款基于ARM Cortex-A76开发而成的CPU,麒麟980的性能比970提升了75%,能效同步提升58%,比骁龙845性能领先37%,能耗降低32%。

这套全新设计的CPU架构麒麟CPU子系统,由2个超大核(基于Cortex-A76开发)、2个大核(基于Cortex-A76开发)和4个小核(Cortex-A55)的三档能效架构组成的。

其中,超大核主频达到2.6GHz,用来处理急速任务;大核主频达到1.9GHz,用于处理长时间的持续任务,而小核主频是1.8GHz,试用于日常的使用。

更具体来说,超大核主要用于游戏,大核用于社交通信等,而小核则在听音乐等方面发挥作用。

最新GPU架构

CPU为ARM以外,GPU架构也没有落后,同样基于ARM最新款Mali-G76 GPU架构开发

还是和麒麟970相比,980的GPU性能的提升46%,能效提升178%。对于用户而言,能够直接感受到在玩大型游戏的时候,不易卡顿,且不易变成"暖手宝"。

在图像处理方面,麒麟980采用全新升级第四代自研ISP,像素吞吐率比上一代提升46%,降噪与色彩还原能力大力提升。

华为方面表示,就拿玩游戏来说,和主流的产品相比,麒麟980性能基本上能够达到59.3帧/秒,接近60帧,而且加上GPU Turbo后可以保持基本稳定持续在60帧,性能更强,功耗更小。

同时,麒麟980还支持最快的DDR,带宽是比业界主流的水平要高20%,延迟比主流水平低32%。对于用户来说,内存大,操作快,运转起来就快。

当然,对于用户来说,不仅意味着玩游戏更爽,也意味着手机运行更顺畅。

除了GPU架构,华为此次依然大书特书的,还是AI。

AI加持

终端侧AI应用,华为已然轻车熟路。

去年推出业界首款人工智能芯片麒麟970搭载了寒武纪提供的NPU(嵌入式神经网络芯片),将AI手机带入大众眼前。

今年,AI再次加持麒麟芯片,而且还是"双倍的"。

首先,麒麟980集成了双NPU,比麒麟970的图像识别速度提升了120%。

从单NPU到双NPU带来的效果是AI的能力更强,强在哪些地方?

对于用户来说,可能最容易感受到的是图像与视频的处理方面。

一方面,在物体的识别方面,从以前识别到轮廓,到现在识别到细节。

另一方面,实时P图已是过去,现在可以实时检测视频了。在实时的物体分割上面,从略微粗放的场景划分,再到现在的精细划分,AI算力带来了970达不到的提升。

在新手机中,麒麟980允许同时实时"跟踪"多个对象,还能在视频中"换背景"。

麒麟980实现每分钟图像识别4500张,识别速度相比上一代提升120%。现场当然还拿845出来对比了一番。

除了图像处理,华为还自创了Flex-Scheduling技术,带来全新的AI的智能的预测和调度机制,用俗语来说,就如杀鸡焉用牛刀。

根据你所跑的应用,系统将智能地做三级的调度。比如听音乐时,系统可能只需要一个小核,用社交软件的时候,又动用了中核,有很多大量的负载的时候,比如大型游戏,因为游戏通常是消耗资源特别多,系统自动动用大核。

也就是说,这样一个更智能和精准的调度层级,在你需要性能的时候,给你最强的性能,不需要的时候,帮你将功耗降到最低。

性能总览

智能手机还是手机,通信质量、WiFi水平和GPS定位等性能也确实关乎用户体验,对此,华为对麒麟980信心十足。

据华为方面表示,今年新增了14层的接收器,实现了1.4Gbps的速率,这是全球最快的峰值下载速率,在全球率先支持LTE Cat.21。手机WiFi芯片Hi1103,理论峰值下载速率可达1.7Gbps,麒麟980拥有业界最快的手机wifi的速率。

同时,Hi1103支持业界领先的L1+L5双频GPS超精准定位,L5频段下定位精度提升10倍,有效改善手机定位精准度,让用户在地形复杂的城市峡谷及高架道路等地区使用地图导航时,能够免受"路痴"困扰,精准到达目标地点。

当然,作为最新旗舰芯片麒麟980,不可能会错过5G。

余承东透露,5G会在麒麟980周期内加持,会使用Balong 5000调制解调器准备5G芯片模组。

总体来说,麒麟980相比970有了6点突破——

工艺技术:从10nm-7nm,提升了10%速度,40%能效和1.6倍逻辑电路的密度

CPU:从基于Cortex-A73架构到基于Cortex-A进行76开发,性能提升了75% ,能效提升了58%

GPU:从基于Mali-G72设计到基于Mali-G76,性能提升46%,能效提升178%

NPU:从单个NPU进化到双NPU,图像识别速度是之前的2.2倍

网速:从1.2Gbps Cat.17提升到1.4Gbps Cat.21,提速16%

Max. Lpddr4:从1866MHz到2133MHz,带宽增加了20%增加,延迟减小22%

产品预告

最后,余承东还在麒麟980发布会上顺路带货。

会有2大产品线产品,搭载麒麟980。比如,华为新一代旗舰手机Mate 20,10月16日伦敦发布。

最后,one more thing,华为首款AI音箱Cube,今天也正式对外发布。

但这款产品明显面向海外,由亚马逊Alexa提供语音交互,内置4G路由器,传输速度最高300 Mbps。

具体售价和开售时间,暂未公布。

嗯,就酱~

欢迎大家关注我们的专栏:量子位 - 知乎专栏

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复"招聘"两个字。

量子位 QbitAI· 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态



via 量子位 - 知乎专栏 https://ift.tt/2orA96V
RSS Feed

RSS5


Unsubscribe from these notifications or sign in to manage your Email Applets.

IFTTT

华为最强AI芯980发布:全球首款7nm手机芯,6项世界第一

安妮 雷刚 发自 凹非寺 量子位 报道 | 公众号 QbitAI

"遥遥领先!"

这是华为消费者业务CEO余承东放下的狠话,他说自家即将推出的手机芯片麒麟980,将在全球范围内遥遥领先。

而且领先的不是别家,正是安卓阵营手机芯片寡头高通骁龙,以及苹果为iPhone打造的专属芯片。

于是此言一出,国内外都议论纷纷。有较真的,挖出各种工艺制造、性能提升、AI加持方面的信息;也有吃瓜的,就想坐等余承东是不是会打脸。

现在,答案来了。

在刚刚开幕的2018 IFA德国柏林国际电子消费展会上,华为以"奇点将至"之名,正式对外推出麒麟980

作为最新推出的AI手机SoC芯片,麒麟980全球首次商用领先的TSMC 7nm制造工艺,并基于CPU、GPU、NPU、ISP、DDR设计了全系统融合优化的异构架构。

如余承东所说,这款中国芯,3年开发,有6个业界第一加持:

  • 全球最早商用TSMC 7nm工艺的手机SoC芯片
  • 全球实现基于ARM Cortex-A76 CPU架构进行商业开发
  • 首款搭载双核NPU(Dual-NPU)的移动端芯片
  • 首款搭载最新的Mali-G76 GPU架构的移动端芯片
  • 通信方面率先支持LTE Cat.21,峰值下载速率1.4Gbps达业内最高
  • 内存方面支持全球最快的LPDDR4X颗粒,主频最高可达2133MHz

具体怎么回事,我们一项项看:

全球首款商用7nm手机芯片

想往高性能、低能耗和小体积方向走,就得提升工艺制程。

去年发布的华为970还尚处10nm工艺阵列,今年,麒麟抢占先机,赶在也是7nm制程的高通骁龙855前面,首发了第一款7nm手机芯片。

据TSMC的官方数据统计,相比上一代旗舰——10nm工艺制程的麒麟970,980性能提升约20%能效的提升约40%逻辑电路的密度的提升了60%,即原来的1.6倍。

就意味着,在更小的体积里,这个芯片能够装下更多的晶体管,从而能够实现更强的性能和功能。

在半导体芯片的研发过程里,7nm的工艺制程逼近了硅基半导体工艺的物理极限,还要克服复杂的半导体技术效应和晶体管本身的三维电阻电容带来的影响,麒麟980无异于在针尖上跳舞。

但余承东也强调,种瓜得瓜种豆得豆,这是华为3年攻坚换来的回报。

这位华为高管透露,为了研发麒麟980,华为在2015年就开始研究7nm芯片,2017年进入Soc工程验证,再到2018年进行量产,项目周期长达3年。

其中,1000多位高级半导体专家参与,5000多次的工程验证。

花费多少钱?理查德·余没展开说。

但在此次发布前,外界还多流传着华为斥资3亿美元研发麒麟980的消息。华为方面否定了这一消息,因为芯片为滚动开发,所以具体多少美元并不好界定,但数亿美元是肯定的。

对于研发投入比,华为表示自己做芯片仅仅定位来承载自己的硬件架构,来实现产品差异化、竞争力以及低成本。但从当前发展来看看,无论从竞争力和品牌来看,芯片的投入非常有价值。

不亏。

最新CPU架构

芯片若想好,设计架构少不了。这方面,麒麟980倒也是先行了一步。

作为全球首款基于ARM Cortex-A76开发而成的CPU,麒麟980的性能比970提升了75%,能效同步提升58%,比骁龙845性能领先37%,能耗降低32%。

这套全新设计的CPU架构麒麟CPU子系统,由2个超大核(基于Cortex-A76开发)、2个大核(基于Cortex-A76开发)和4个小核(Cortex-A55)的三档能效架构组成的。

其中,超大核主频达到2.6GHz,用来处理急速任务;大核主频达到1.9GHz,用于处理长时间的持续任务,而小核主频是1.8GHz,试用于日常的使用。

更具体来说,超大核主要用于游戏,大核用于社交通信等,而小核则在听音乐等方面发挥作用。

最新GPU架构

CPU为ARM以外,GPU架构也没有落后,同样基于ARM最新款Mali-G76 GPU架构开发

还是和麒麟970相比,980的GPU性能的提升46%,能效提升178%。对于用户而言,能够直接感受到在玩大型游戏的时候,不易卡顿,且不易变成"暖手宝"。

在图像处理方面,麒麟980采用全新升级第四代自研ISP,像素吞吐率比上一代提升46%,降噪与色彩还原能力大力提升。

华为方面表示,就拿玩游戏来说,和主流的产品相比,麒麟980性能基本上能够达到59.3帧/秒,接近60帧,而且加上GPU Turbo后可以保持基本稳定持续在60帧,性能更强,功耗更小。

同时,麒麟980还支持最快的DDR,带宽是比业界主流的水平要高20%,延迟比主流水平低32%。对于用户来说,内存大,操作快,运转起来就快。

当然,对于用户来说,不仅意味着玩游戏更爽,也意味着手机运行更顺畅。

除了GPU架构,华为此次依然大书特书的,还是AI。

AI加持

终端侧AI应用,华为已然轻车熟路。

去年推出业界首款人工智能芯片麒麟970搭载了寒武纪提供的NPU(嵌入式神经网络芯片),将AI手机带入大众眼前。

今年,AI再次加持麒麟芯片,而且还是"双倍的"。

首先,麒麟980集成了双NPU,比麒麟970的图像识别速度提升了120%。

从单NPU到双NPU带来的效果是AI的能力更强,强在哪些地方?

对于用户来说,可能最容易感受到的是图像与视频的处理方面。

一方面,在物体的识别方面,从以前识别到轮廓,到现在识别到细节。

另一方面,实时P图已是过去,现在可以实时检测视频了。在实时的物体分割上面,从略微粗放的场景划分,再到现在的精细划分,AI算力带来了970达不到的提升。

在新手机中,麒麟980允许同时实时"跟踪"多个对象,还能在视频中"换背景"。

麒麟980实现每分钟图像识别4500张,识别速度相比上一代提升120%。现场当然还拿845出来对比了一番。

除了图像处理,华为还自创了Flex-Scheduling技术,带来全新的AI的智能的预测和调度机制,用俗语来说,就如杀鸡焉用牛刀。

根据你所跑的应用,系统将智能地做三级的调度。比如听音乐时,系统可能只需要一个小核,用社交软件的时候,又动用了中核,有很多大量的负载的时候,比如大型游戏,因为游戏通常是消耗资源特别多,系统自动动用大核。

也就是说,这样一个更智能和精准的调度层级,在你需要性能的时候,给你最强的性能,不需要的时候,帮你将功耗降到最低。

性能总览

智能手机还是手机,通信质量、WiFi水平和GPS定位等性能也确实关乎用户体验,对此,华为对麒麟980信心十足。

据华为方面表示,今年新增了14层的接收器,实现了1.4Gbps的速率,这是全球最快的峰值下载速率,在全球率先支持LTE Cat.21。手机WiFi芯片Hi1103,理论峰值下载速率可达1.7Gbps,麒麟980拥有业界最快的手机wifi的速率。

同时,Hi1103支持业界领先的L1+L5双频GPS超精准定位,L5频段下定位精度提升10倍,有效改善手机定位精准度,让用户在地形复杂的城市峡谷及高架道路等地区使用地图导航时,能够免受"路痴"困扰,精准到达目标地点。

当然,作为最新旗舰芯片麒麟980,不可能会错过5G。

余承东透露,5G会在麒麟980周期内加持,会使用Balong 5000调制解调器准备5G芯片模组。

总体来说,麒麟980相比970有了6点突破——

工艺技术:从10nm-7nm,提升了10%速度,40%能效和1.6倍逻辑电路的密度

CPU:从基于Cortex-A73架构到基于Cortex-A进行76开发,性能提升了75% ,能效提升了58%

GPU:从基于Mali-G72设计到基于Mali-G76,性能提升46%,能效提升178%

NPU:从单个NPU进化到双NPU,图像识别速度是之前的2.2倍

网速:从1.2Gbps Cat.17提升到1.4Gbps Cat.21,提速16%

Max. Lpddr4:从1866MHz到2133MHz,带宽增加了20%增加,延迟减小22%

产品预告

最后,余承东还在麒麟980发布会上顺路带货。

会有2大产品线产品,搭载麒麟980。比如,华为新一代旗舰手机Mate 20,10月16日伦敦发布。

最后,one more thing,华为首款AI音箱Cube,今天也正式对外发布。

但这款产品明显面向海外,由亚马逊Alexa提供语音交互,内置4G路由器,传输速度最高300 Mbps。

具体售价和开售时间,暂未公布。

嗯,就酱~

欢迎大家关注我们的专栏:量子位 - 知乎专栏

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复"招聘"两个字。

量子位 QbitAI· 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态



via 量子位 - 知乎专栏 https://ift.tt/2orA96V
RSS Feed

RSS5


Unsubscribe from these notifications or sign in to manage your Email Applets.

IFTTT

JavaScript 之父联手近万名开发者集体讨伐 Oracle:给 JavaScript 一条活路吧!- InfoQ 每周精要848期

「每周精要」 NO. 848 2024/09/21 头条 HEADLINE JavaScript 之父联手近万名开发者集体讨伐 Oracle:给 JavaScript 一条活路吧! 精选 SELECTED C++ 发布革命性提案 "借鉴"Rust...