《深度学习之图像识别:核心技术与案例实战》 ——2.1.7 Chainer简介
2.1.7 Chainer简介
Chainer是一个由Preferred Networks公司推出并获得英特尔支援,专门为高效研究和开发深度学习算法而设计的开源框架。Chainer使用纯Python和NumPy提供了一个命令式的API,为复杂神经网络的实现提供了更大的灵活性,加快了迭代速度,提高了实现深度学习算法的能力。
现在的复杂神经网络(如循环神经网络或随机神经网络)带来了新的性能改进和突破,虽然常用框架同样可以实现这些复杂神经网络,但编程非常冗余复杂,可能会降低代码的开发效率和可维护性。而Chainer的特点即在训练时“实时”构建计算图,正适合此类复杂神经网络的构建。这种方法可以让用户在每次迭代时(或者对每个样本)根据条件更改计算图。同时也很容易使用标准调试器和分析器来调试和重构基于Chainer的代码。
不同于其他基于Python接口的框架(如TensorFlow),Chainer通过支持兼容NumPy的数组间运算的方式,提供了声明神经网络的命令式方法,可以通过反向追踪从最终损失函数到输入的完整路径来实现反向计算。完整路径在执行正向计算的过程中进行存储,不用预先定义计算图。标准神经网络的运算在Chainer类中是通过Link类实现的,如线性全连接层和卷积层。
Link可以看作是当前网络层的学习参数的一个函数,比如一个Linear Link就代表数学表达式f(x)=wx+b,用户也可以创建一个包含许多Link的Link。这样的一个Link容器被命名为Chain。这使得Chainer将神经网络建模成一个包含多个Link和多个Chain的层次结构。Chainer还支持最新的优化方法、序列化方法及使用CuPy的由CUDA驱动的更快速计算,目前已在丰田汽车、松下和FANUC等公司投入使用。
- 点赞
- 收藏
- 关注作者
评论(0)