Fork me on GitHub

从零开始掌握 tensorflow 算子开发

pexels-stanislav-kondratiev-3082731.jpg

说起神经网络模型的编程框架,google 开源的 tensorflow 可以说是最主流的神经网络框架。得益于 tensorflow 对模型部署、模型压缩、多语言支持的一系列优点,在国内的工业界基本上都将 tensorflow 作为第一选择。tensorflow 作为一个通用框架,提供了丰富的算子以满足常规的模型开发需求,比如高层的 layer 模块提供封装好的卷积层,可以让大家在不需要了解内部实现细节的情况下能构建卷积神经网络。但是光了解怎么用,却不知其所以然只能说熟练掌握 tensorflow 的使用,而不是掌握 tensorflow 的开发。

随着工作学习中的日益精进,逐渐可能会发现 tensorflow 提供的算子不够用,或者没有那么好用了。我有一个好的 idea ,但是 tensorflow 没有一个好的算子支持,或者说要组合多个算子,才能勉强实现功能,关键还慢!要不换一个 idea 吧,这样的退堂鼓一打,顶会就这样和你擦肩而过。为了避免这样的可惜发生,于是你点开了这篇博客,想了解 tensorflow 怎么创建一个全新的算子。

image.png

这个系列博客分为三个部分来让你掌握 tensorflow 算子开发。首先会介绍 tensorflow 的算子开发一些基本知识,以达到理解 tensorflow 算子的工作机制,以及如何编译 tensorflow。并且本系列文章假设读者了解基本的 C++ 编程知识,涉及到的一些基本 C++ 编程有不懂的地方欢迎在评论区评论,博主会做详细回复。在这之后我们会先介绍 tensorflow 的算子如何开发,这块会分为 3 个主题:cpu 算子开发、gpu 算子开发以及基本的 cuda 编程、tensorflow 自有算子的源码解读。阅读完这三块内容,让读者掌握基本的 tensorflow 的算子开发。能将自己的 idea 转化为一个具体的实现。最后我们将关注三个高阶的主题:算子性能优化、tensorRT 支持新、模型量化。通过阅读这三个主题的博客,希望能让读者能对这几个高阶主题有一定了解。最后我们会以 transformer 模型为基础,完成 gpu 算子封装、算子性能优化、tensorRT 支持、模型量化以及 docker 部署。通过模拟流量比较性能上的差异,带大家实践 tensorflow 算子开发。

目前本系列还在连载中,每周至少更新一篇,预期今年(2021)会连载完。

本文转载自 https://kirivir.github.io/articles/2021/10/10/1633876194557.html


本文地址:https://www.6aiq.com/article/1633904747191
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出