选择使用深度学习框架的原因:
1. 随着网络的更加复杂,深度学习的计算图我们越来越难画出来了,框架能简单的画出来
2. 框架能帮助我们算梯度
3. 框架帮助我们合理利用GPU 我们不用考虑写cuda代码或者cuDNN cuBLAS
使用numpy写forward and backward:
1. 只能运行在CPU,无法运行在GPU
2. 只能自己写backward梯度,分析Local gradient, upstream Gradient
Tensorflow:
可以实现自动计算梯度,以及使用gpu/cpu :
with tf.device('/gpu:0'):
Pytorch: