剑桥计算机博士推荐,毕业之前,我需要掌握这9个工具

选自towardsdatascience
作者:AliakseiMikhailiuk
机器之心编译
编辑:陈萍
无论你在创业还是在做学术研究 , 这些工具都将使你的技能更上一层楼 。
学术界在推进技术方面发挥了巨大作用 , 但学术界和工业界往往存在一种分割状态 。 我们经常会看到这种现象:无数很棒的辅助工具在学术界被忽视 , 但在工业界很受欢迎 。 对于很多研究者来说 , 学习一种新工具可能存在困难 , 不愿意花费过多的时间去尝试 , 在当前自己掌握的工具足以应对各种问题时尤其如此 。
其实 , 有些工具一时未见到效果 , 在后期可能会有十倍的回报 。
来自剑桥大学的计算机科学博士生AliakseiMikhailiuk为我们整理了机器学习博士在获得学位之前需要掌握的九种工具 。 他在剑桥大学获得物理学硕士学位 , 在布里斯托大学获得工程学士学位 。 他对研究、开发、部署感兴趣 , 还能熟练掌握计算机视觉算法、聚合和自然语言处理等技术 。 现任职华为(英国)高级人工智能工程师 。
剑桥计算机博士推荐,毕业之前,我需要掌握这9个工具
文章图片
个人主页:https://www.linkedin.com/in/aliakseimikhailiuk/
Mikhailiuk将这些工具按用途分为四类:可隔离环境、实验跟踪、相互协作以及可视化 。
可隔离环境工具
机器学习是一个快速发展的领域 , 常用的包更新非常频繁 。 尽管开发人员做出了努力 , 但较新的版本通常与旧版本不兼容 , 这样给研究者带来很多麻烦 。 幸运的是 , 有工具可以解决这个问题!在这一方面 , Mikhailiuk推荐了两个工具:Docker和Conda 。
Docker
Mikhailiuk攻读博士学位期间 , 他有一台由大学管理的机器 , 学校会定期进行更新 。 通常情况下是一夜之间更新 , 没有任何通知 。 你可以想象 , 当更新后的第二天早上发现自己大部分工作与最新的驱动程序不兼容 , 是多么令人崩溃 。 Mikhailiuk发现Docker可以很好地解决 。
剑桥计算机博士推荐,毕业之前,我需要掌握这9个工具
文章图片
Docker允许将软件包装在称为容器的包中 。 容器是具有自己的软件、库和配置文件的独立单元 。 在一个简化的视图中 , 容器是一个独立的虚拟操作系统 , 它具有与外部世界通信的手段 。 Docker是一个开源的应用容器引擎 , 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中 , 然后发布到任何流行的Linux或Windows操作系统的机器上 , 也可以实现虚拟化 , 容器是完全使用沙箱机制 , 相互之间不会有任何接口 。
一个完整的Docker由以下几个部分组成:
DockerClient客户端
DockerDaemon守护进程
DockerImage镜像
DockerContainer容器
Docker教程:https://aws.amazon.com/cn/blogs/opensource/why-use-docker-containers-for-machine-learning-development/
剑桥计算机博士推荐,毕业之前,我需要掌握这9个工具】Conda
现在 , 复用别人的代码成为了一种新的规范 。 GitHub作为一个代码托管云服务网站 , 帮助开发者存储和管理其项目源代码 , 且能够追踪、记录并控制用户对其代码的修改 。 研究者可以克隆上面的代码 , 安装并提出自己的解决方案 , 而不需要自己写任何东西 。
但是GitHub也有不方便的情况 , 当多个项目一起使用时 , 你会遇到包管理问题 , 因为不同的项目需要不同版本的包 。
Conda可以解决这个问题 。 Conda是一个开源跨平台语言无关的包管理与环境管理系统 , 它允许创建多个环境并快速安装、运行和更新包及其依赖项 , 用户可以在隔离的环境之间快速切换 。
剑桥计算机博士推荐,毕业之前,我需要掌握这9个工具