今天聊一聊算法工程师是否也需要会前端开发与后端开发知识,答案毫无疑问是肯定的,必须要会。算法工程师一般指的是机器学习的算法工程师,机器学习的算法工程师的主要任务是提高模型的准确率,压缩模型,提高模型的泛化能力,优化代码的结构,加快模型的推理速度等。这么说起来好像机器学习的算法工程师貌似和前端开发与后端开发没什么关系。不过请看我继续写下去。
机器学习的训练需要大量的数据,一般来说可以使用公开的数据集,比如最常见的cifar10,cifar100,voc,cooc,imagnet数据集,如果需要识别特殊的数据,比如识别电路板,这种没有数据集的只能使用自己制作的数据集,一般说可以使用python爬虫一些图片,来进行数据集的制作,并且制作label的标签文档。接着进行模型的训练,经过若干时间后,模型训练完毕,你得到了一个best model。
现在问题来了,你要怎么去给老板或者产品经理展示你的成果呢?大多数老板和产品经理都是技术小白,他们可能连黑框都看不懂,怎么办?这是就需要用前端的开发的知识,做出一个UI的界面,将输入图片改为模型的输入连接,将输出的结果标签与对应准确率或者是目标检测的MAP,做出一个用户级别的交互界面,这样给产品经理去看,肯定事半功倍,如果你会andriod studio开发,将模型部署于手机移动端,进行推理生成APP,因此前端开发,java,ccs,HTML等必不可少。
当模型经过上级的审核后,我们将模型进行部署在服务器云端,随时进行启用推理,但是问题又来了,一般的后端工程师,不太清楚模型推理的前向传播过程,所以模型的部署需要算法工程师与后端工程共同完成或者就是算法的任务,因此我们需要学习C++的后端开发,来完成模型的前向推理,一般来说考虑到速度,不会使用Python语言,都会使用C//C++更加接近底层的语言。
说了这么多,感觉做一个算法工程师不仅仅要会优化算法,满足要求,前期后期仿佛都是你的责任,最近几年算法工程师的标准也确实越来越高了,好好加油吧!
网友评论