计算图和autograd是定义复杂运算符并自动采用导数的非常强大的范例。但是对于大型神经网络,原始的autograd可能会有点太低了。
在构建神经网络时,我们经常考虑将计算分为几层,其中一些层具有可学习的参数 ,这些参数将在学习过程中进行优化。
在TensorFlow中,诸如Keras, TensorFlow-Slim和TFLearn之类的软件包在原始计算图上提供了更高级别的抽象接口,这些封装对构建神经网络很有用。
TensorFlow-Slim github:https://github.com/tensorflow/models/tree/master/research/slim
tflearn:http://tflearn.org/
在PyTorch中,该nn
程序包达到了相同的目的。该nn
包定义了一组Modules,它们大致等效于神经网络层。模块接收输入张量并计算输出张量,但也可以保持内部状态,例如包含可学习参数的张量。该nn
软件包还定义了一组有用的损失函数,这些函数通常在训练神经网络时使用。