在等 offer 的路上继续我未尽的cs231n,虽然最后工作内容还是和CV擦肩而过。
这节主要就是 1.CPU vs GPU 2. 深度学习框架的介绍。
1. CPU vs GPU
如下图所示,CPU的核心数相对较小,但是主频较高,每个核的处理能力相对更强,擅长于串行任务;而GPU相比较之 下,核心数会多得多,每个核的相对能力会差点,但是擅长并行任务,例如矩阵运算。
GPU编程:1.使用CUDA(Nvidia only),调用高级的API或编写类似C代码并运行在GPU上
2.使用OpenCL,类似CUDA,但是运行速度通常更慢
2. 主流的深度学习框架
当然还包括百度的Paddle,微软的CNTK,亚马逊的MXNet等等,个人可能更关注TensorFlow一点,虽然很多人都觉得 使用PyTorch来构建更加容易。
关于深度学习框架,优点主要有以下几点:
1. 容易构建大的计算图形
2. 容易计算梯度
3. 在GPU上运行效率高
一般流程就是先定义计算图形,然后开启会话,不断进行图形计算。相对来讲 tensorflow 比较底层,目前也有框架对其进行了更高层次的封装 -- karas,具体情况可以参考官网文档。