# 自动微分

NiuTensor提供关于具有自动微分功能的反向传播函数,主要包括在进行神经网络反向传播过程中涉及到的几种形式。在本节中,主要对这些函数及其用法用例进行介绍,函数定义详见NiuTensor/Network/XNet.h。

NiuTensor中几种具有自动微分功能的反向传播函数接口如下:

void Backward(XTensor &root, XTensor &gold, LOSS_FUNCTION_NAME loss = NOLOSS)

void Backward(XTensor &root, XTensor &gold, XTensor &padding, LOSS_FUNCTION_NAME loss = NOLOSS)

void Backward(XTensor &root, LOSS_FUNCTION_NAME loss = NOLOSS)

void Backward(XList &roots, XList &golds, XList &paddings, LOSS_FUNCTION_NAME loss = NOLOSS)

void Backward(XList &roots, LOSS_FUNCTION_NAME loss = NOLOSS)

void Backward(XList &roots, XList &golds, LOSS_FUNCTION_NAME loss = NOLOSS)

Parameters:

  • root - 根节点,指最后神经网络的输出,也是反向传播的起点
  • gold - 标准答案
  • padding - 指不需要计算梯度的位置
  • loss - 损失函数的类型

有关Backward的具体用法详见:

NiuTensor/tensor/Sample中的具体示例