剑桥计算机博士推荐,毕业之前,我须要掌握这9个对象

无论你在创业还是在做学术研究,这些对象都将使你的技能更上一层楼。 ​

学术界在推进技术方面发挥了巨大作用,但学术界和工业界往往存在一种分割状态。我们经常会看到这种现象:无数很棒的辅助对象在学术界被忽视,但在工业界很受欢迎。对于很多研究者来说,进修一种新对象可能存在困难,不愿意花费过多的时间去尝试,在当前自己掌握的对象足以应对各种问题时尤其如此。

其实,有些对象一时未见到效果,在后期可能会有十倍的回报。

来自剑桥大学的计算机科学博士生 Aliaksei Mikhailiuk 为我们整理了呆板进修博士在获得学位之前须要掌握的九种对象。他在剑桥大学获得物理学硕士学位,在布里斯托大学获得工程学士学位。他对研究、开发、部署感兴趣,还能熟练掌握计算机视觉算法、聚合和自然语言处理等技术。现任职华为(英国)高级人工智能工程师。

剑桥计算机博士推荐,毕业之前,我须要掌握这9个对象

个人主页:https://www.linkedin.com/in/aliakseimikhailiuk/

 Mikhailiuk 将这些对象按用途分为四类:可隔离情况、实行追踪、相互协作以及可视化

可隔离情况对象

呆板进修是一个快速发展的领域,常用的包更新非常频繁。尽管开发人员做出了努力,但较新的版本通常与旧版本不兼容,这样给研究者带来很多麻烦。幸运的是,有对象可以解决这个问题!在这一方面,Mikhailiuk 推荐了两个对象:Docker 和 Conda。

Docker

Mikhailiuk 攻读博士学位期间,他有一台由大学管制的呆板,学校会定期进行更新。通常情况下是一夜之间更新,没有任何通知。你可以想象,当更新后的第二天早上发现自己大部分事情与最新的驱动程序不兼容,是多么令人崩溃。Mikhailiuk 发现 Docker 可以很好地解决。

剑桥计算机博士推荐,毕业之前,我须要掌握这9个对象

Docker 容许将软件包装在称为容器的包中。容器是具有自己的软件、库和配置文件的独立单元。在一个简化的视图中,容器是一个独立的虚拟操作系统,它具有与外部世界通信的手段。Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 操作系统的呆板上,也可以实现虚拟化,容器是完全运用沙箱机制,相互之间不会有任何接口。

一个完整的 Docker 由以下几个部分组成:

DockerClient 客户端

Docker Daemon 守护进程

Docker Image 镜像

DockerContainer 容器

Docker 教程:https://aws.amazon.com/cn/blogs/opensource/why-use-docker-containers-for-machine-learning-development/

Conda

现在,复用别人的代码成为了一种新的规范。GitHub 作为一个代码托管云服务网站,帮助开发者存储和管制其项目源代码,且能够追踪、记实并控制用户对其代码的修改。研究者可以克隆上面的代码,安装并提出自己的解决方案,而不须要自己写任何东西。

但是 GitHub 也有不方便的情况,当多个项目一起运用时,你会遇到包管制问题,因为不同的项目须要不同版本的包。

Conda 可以解决这个问题 。Conda 是一个开源跨平台语言无关的包管制与情况管制系统,它容许创设多个情况并快速安装、运行和更新包及其依赖项,用户可以在隔离的情况之间快速切换。

剑桥计算机博士推荐,毕业之前,我须要掌握这9个对象

Conda 教程:https://conda.io/projects/conda/en/latest/user-guide/getting-started.html#starting-conda

运行、追踪和记实实行对象

在应用领域想要获得博士学位,严谨性和一致性是两个基本支柱。假如你是研究呆板进修模型的,或多或少都能遇到这种情况——你创设了许多不同的模型来试验不同的参数甚至整个架构。你还想尝试优化器的选择、进修率、时期数等。因此,实际上,你将进行许多不同的实行,并且将越来越难以整理结果。在这一方面,Aliaksei Mikhailiuk 向我们展示了如何正确方便地管制和记实自己的 ML 和 DL 实行对象,主要推荐了 Weights & Biases,MLFlow,Screen 对象。

Weights & Biases

剑桥计算机博士推荐,毕业之前,我须要掌握这9个对象

wandb panel 一组简单指标 Snapshot——训练损失、进修率和平均验证损失。请注意,你还可以追踪系统参数。

W&B(Weights & Biases) 是一个平台,可以帮助数据科学家追踪他们的模型、数据集、系统信息等。只需几行代码,用户就可以开始追踪有关这些功能的所有内容。它收费供个人运用,团队运用通常须要付费,但用于学术目的的团队是收费的。你可以将 W&B 与自己喜欢的框架一起运用,例如 TensorFlow、Keras、PyTorch、SKlearn、fastai 等。

W&B 提供了以下 4 个有用的对象:

Dashboard:实行追踪;

Artifacts:数据集版本控制、模型版本控制;

Sweeps:超参数优化;

Reports 保存和共享可重现的结果。

W&B 教程:https://docs.wandb.ai/quickstart

MLFlow

MLFlow 是一个能够覆盖呆板进修全流程(从数据准备到模型训练到最终部署)的新平台,它是一款管制呆板进修事情流程的对象,主要有三个功能模块:Tracking 追踪和记实、Project 项目管制和 Models 模型管制。MLflow 支持 Java、Python、R 和 REST API 等。

剑桥计算机博士推荐,毕业之前,我须要掌握这9个对象

MLFlow 具有以下主要组件:

追踪:用于追踪试验,以记实和比较参数与结果;

模型:用于通过各种 ML 库管制模型,并将其部署到各种模型服务和推理平台;

项目:用于将 ML 代码打包成可重用、可再现的格式,以便与其他数据科学家共享或转移到生产情况;

模型注册表:使你可以将模型存储集中化,以便运用版本控制和批注功能来管制模型的完整生命周期阶段转换;

模型服务:可用于将 MLflow 模型以 REST 终结点的形式托管。

MLFlow 教程:https://www.mlflow.org/docs/latest/tutorials-and-examples/tutorial.html

Screen

对于每个研究者来说,让实行通宵运行而且呆板不会进入休眠状态再好不过了。当进行远程事情时,很多人都会担心 ssh 会话中断——代码运行几个小时就停止了。

screen 命令容许用户在一个窗口内运用多个终端会话,可以断开连接,也可以重新连接已断开连接的会话。每个会话都可以恢复连接,这样就算会话断开了,用户也不必担心数据丢失。

Screen 教程:https://www.geeksforgeeks.org/screen-command-in-linux-with-examples/

协作对象

学术界缺乏有效的团队管制机制,在某种程度上这是由于学术界会严格划分个人贡献造成的。然而,呆板进修的发展速度须要大家共同努力。Mikhailiuk 推荐了两个非常基本的对象:GitHub 以及 Lucidchart,它们对于有效的沟通非常方便,尤其是在远程事情上。

GitHub

GitHub 是通过 Git 进行版本控制的软件源代码托管服务平台,同时提供付费账户和收费账户,这两种账户都可以创设公开或私有的代码仓库,但付费用户支持更多功能。除了容许个人和组织创设和访问保管中的代码以外,它也提供了一些方便社会化共同软件开发的功能,包括容许用户追踪其他用户、组织、软件库的动态,对软件代码的改动和 bug 提出评论等。GitHub 也提供图表功能,用于概观显示开发者们怎样在代码库上事情以及软件的开发活跃程度。

剑桥计算机博士推荐,毕业之前,我须要掌握这9个对象

就在近日,GitHub 正式发布了 2021 年度报告。过去一年里,有 1600 万开发者加入了 GitHub,目前平台的开发者数量已经达到了 7300 万;过去一年里,他们在 GitHub 上创设了 6100 万个存储库。世界财富 100 强企业中的 84% 都在运用 GitHub。

GitHub 教程:https://docs.github.com/en/get-started/quickstart/hello-world

Lucidchart

Lucidchart 是一款收费的可以支持离线操作的谷歌浏览器图表插件,可以帮助用户绘制包括流程图、实体模型、UML、思维导图等多种图表的绘制事情。它提供了很多收费绘图模板,大大地加快了用户的绘图速度。该应用的一大优势是,它基于 HTML5,因此用户不须要下载本地应用程序,就可以在电脑、iPad 等设备上运用该应用。它的另一主要优势是共享的协作空间和在图表旁边做笔记的能力。

剑桥计算机博士推荐,毕业之前,我须要掌握这9个对象

Lucidchart 教程:https://www.lucidchart.com/pages/tour

可视化对象

提交论文时,研究人员经常会遇到拒稿的情况,这让 Mikhailiuk 意识到可视化功能和结果一样重要。如果审稿人没有太多时间,或者对论文涉及的领域不熟悉,通常来说论文会被拒掉,其中一部分原因可能是论文中的视图给人印象不深刻。因此,Mikhailiuk 推荐了 Inkscape 和 Streamlit 这两个对象。

Inkscape

Inkscape 是一个开源的矢量图编辑对象,运用可伸缩向量图形 (SVG),以及基于 W3C 标准的 open XML 格式作为其默认文件格式。设计过程可能从一张涂鸦、一幅素描或者软件中模型设计开始,这些可能不足以完成一整个项目。Inkscape 可以帮助你将以上不成熟的素材转变为专业的设计,用于广告发布、模型制作等用途。Inkscape 还能提供 TexText 扩展,运用此软件包,你可以将 latex 公式无缝集成到图像中。

剑桥计算机博士推荐,毕业之前,我须要掌握这9个对象

Inkscape 推荐教程:https://inkscape.org/learn/tutorials/

Streamlit

Streamlit 和常规 Web 框架不同之处在于,它不须要你去编写任何客户端代码(HTML/CSS/JS),只须要编写普通的 Python 模块,就可以在很短的时间内创设美观并具备高度交互性的界面,从而快速生成数据分析或者呆板进修的结果;另一方面,和那些只能通过拖拽生成的对象也不同的是,你仍然具有对代码的完整控制权。

剑桥计算机博士推荐,毕业之前,我须要掌握这9个对象

教程地址:https://builtin.com/machine-learning/streamlit-tutorial

以上就是 Mikhailiuk 在获得呆板进修博士学位之前须要掌握的九个对象,你不妨也进修一下,相信这些对象在你之后的进修、事情中,会起到事半功倍的效果。

原文链接:https://towardsdatascience.com/nine-tools-i-wish-i-mastered-before-my-phd-in-machine-learning-708c6dcb2fb0

给TA打赏
共{{data.count}}人
人已打赏
AI

AutoX再发40分钟经营视频:不仅没有安全员,还实现全区经营

2021-11-17 21:02:00

AI

观点 | 物理车钥匙该退出历史舞台了吗?

2021-11-23 10:21:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索