一般情况下,研究深度学习是自己手动写网络层来架构网络模型还是用主流的一些框架如Pytorch或TF?

最近正计划用c语言基于OpenBLAS和CUDA写一个简单的深度学习框架并支持一些简单的网络层,但不知道这样是否有必要
关注者
24
被浏览
12,715
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

笔者用Python写过原理级的静态图深度学习框架(最近在忙一篇paper,没时间更新blog,所以有关DLF的只更新了两章=_=)

最近打算用C封装一波算子。不得不说,自己动手实现DLF(深度学习框架)是一件很酷的事,而且因为笔者现在是大二,笔者认为这个阶段造轮子有助于对DL理论的理解,也能培养编程能力(众所周知目前DL理论和底层实现有一层gap)。

因此,笔者个人的建议是,如果你有急切的实现需求,比如高性能模型构建,那么现成的DLF和utils无疑是最好的选择,因为大量的边界处理,上溢处理,算子并行,计算图在编译前的node剪枝,最大效率调度底层硬件资源来配合你的DLF等等这些,想要自己做一个应用级的DLF还是需要一定的时间和精力的(可以参考盾神写的计图)。

如果你和笔者一样,处于相对能够给较为理论的概念和工具提供研究时间和精力的本科阶段,或者是论文写完闲到打游戏的研究生,发了疯似的想要学习知识,巩固基础,争做全面发展新时代好青年,那么为什么不抽出自己每天宝贵的打游戏或者写歌作曲的时间来愉快地wheel making呢?毕竟这很酷,不是吗?