作者
RichmondAlake
译者
弯月
题图
自视觉中国
出品
AI科技大本营(ID:rgznai)
我写这篇文章的目的是为了向那些没有接触过机器学习行业的人们介绍一下我作为计算机视觉工程师第一个月以来的体验,希望这些内部信息能够让你们在做职业选择时有所启发。
但是请记住,本文只是我的个人体验,并不代表整个行业。
我将在本文中探讨以下内容:
在这一个月里我的内心充满了恐惧视觉工程师的研究要求为什么研究很重要哪些技术有助于以机器学习为中心的工作取得成功
恐惧与责任
老实说,我在惴惴不安中度过了第一个月。这并不是我的第一份正式工作,在成为机器学习/计算机视觉工程师之前,我曾做过三年半的Web开发。
但这次的感觉有很大的不同。我感到恐惧的原因有以下几种:
我负责与公司产品相关的所有计算机视觉工作我们团队非常信任我的各项决定恐惧不一定是一件坏事,我用恐惧武装自己,迫使自己将工作做到尽善尽美,并在需要时给予%的回报。
研究
作为公司的首位以机器学习为中心的员工,大家希望我提出最恰当的工作流程。
其中包括许多研究工作。
作为一名机器学习工程师,你必须理解各个发表论文中提及的最新技术的关键细节。
实现技巧对工程师至关重要,但是你必须成为该领域的专家,才能解释清楚机器学习模型的工作原理,或为什么选择其中一种方法而舍弃其他方法。
在这一个月里,我阅读了大量有关标准计算机视觉问题解决方案的研究论文,例如姿态估计、语义分割、对象检测等等。
技术
我们公司主要的产品以iOS移动应用的形式呈现。
而我没有接触过开发iOS移动应用的经验,因此在这一个月里我不得不熟悉Xcode(开发移动应用程序的IDE)以及Swift(苹果的移动开发编程语言)。
很多人可能不太了解,其实一名优秀的机器学习工程师也必须掌握软件开发的技术。
机器学习工程师的工作不仅限于JupyterNotebook和Python脚本,而且还需要使用新的编程语言来构建网站或移动应用,这是一个非常高的要求。
每天,我都需要交替使用Swift、Python和JavaScript来完成各种不同的任务。
其中的关键并不是要掌握大量编程语言,而是需要具备掌握大多数编程语言基础知识的能力。
学习面向对象编程(OOP)是一个不错的起点。
通常,从一种编程语言中学到的知识在其他语言中也通用。
硬件
在我的个人项目中,一般我会使用NividiaGeforceGTX来训练大多数机器学习模型。但这个GPU远远比不上训练最新模型所需的硬件规范。
在这一个月里,我的任务是总结出公司应该购买的GPU工作站技术规范。
为了选择合适的硬件组件,我需要预见未来几个月甚至几年我将要训练的模型类型。
为了做出正确的决定,我不得不做大量的研究工作,搞清楚最新的研究论文采用了哪些硬件规格来训练模型。
同样,我还需要研究能够支持稳定工作站的其他硬件组件。
我考虑了以下各个方面:
冷却系统主板和处理器电源容量GPU插槽以及其他……
文档记录
软件的文档记录过程冗长、乏味且无聊。但是将商定的技术方法全部记录下来至关重要。
我们必须记录采取的每项决定和方法,以方便告知团队成员和后来的新人。
在第一个月里,我在记录文档上了大约12个小时,虽然很没意思,但非常有必要。
我记录的内容包括:
记录推进机器学习项目时采用的流程研究论文的摘要,方便大家快速消化重要资料关键项目以及软件解决方案的实现方法GPU工作站硬件规格比较代码内文档,说明实现代码的原因和逻辑各个岗位都有很多需要记录的领域。每周都应该花费至少2个小时来专门处理文档。
喜欢这份工作
作为公司正式的计算机视觉工程师,我在第一个月里学习了很多有关如何应用机器学习技术的见解。
我发现,许多人可能不知道机器学习模型并不是最终产品。机器学习本身只是软件工程中的一个环节;只有将我们的研究成果嵌入到软件系统中,才能以创新的方式执行任务。
展望未来,第一个月的工作让我意识到我很喜欢机器学习能够带来的创造性输出。
朝着创新的目标努力可以让平凡的模型实现、调试以及训练任务少些无聊。
总结
在第一个月中,我实现了以下目标:
为计算机视觉的实现过程设定标准学习一种新的编程语言提供用于构建公司GPU工作站的硬件规范学习计算机视觉技术的实现技术,例如姿态估计、手势识别和语义分割等学习TensorFlow和TensorFlowLite在接下来的几个月中,我将探索并实现更多最新的解决方案。希望在三个月后,我能在这个岗位上更上一层楼。
原文链接: