函数 Function

function函数位于zeronet.core.function,是完成计算的幕后英雄。

每个函数成对出现,_forward()负责前向计算,_backward()负责后向传播梯度。

_foward()

前向函数完成网络计算中的前向部分,输入是来自上层的输出x,本层参数weights和超参数。

线性层的超参已经蕴含在weights中(即输出的维度),而向卷积层的超参,kernel_size蕴含在weights中,而stridepad则组成一个字典,传入_forward()函数。

_backward()

后向函数完成反向传播的核心部分:接受后一层传来的数据梯度,计算本层数据的梯度、参数的梯度。

与前向函数类似,输入包括后一层传来的数据梯度dout、本层数据输入x、本层参数weights和本层超参。

目前支持的函数列表

  • linear_forward(x, weights)
  • linear_backward(x, weights, dout)
  • conv_forward(x, weights, conv_params)
  • conv_backward(x, weights, conv_params, dout)
  • max_pool_forward(x, pool_param)
  • max_pool_backward(x, pool_param, dout)
  • relu_forward(x)
  • relu_backward(x, dout)
  • sigmoid_forward(x)
  • sigmoid_backward(x, dout)

更多关于这些函数实现的信息请参见源码