Python中self.forward函数的说明



我无法理解在类Loss下定义的sample_losses = self.forward(output, y)

从中";正向函数";它将输入作为先前为所有三个类(即Dense_layerActivation_ReLUActivation_Softmax(定义的前向函数?

class Layer_Dense:
def __init__(self, n_inputs, n_neurons):
self.weights = 0.01 * np.random.randn(n_inputs, n_neurons)
self.biases = np.zeros((1, n_neurons))
print(self.weights)
def forward(self, inputs):
self.output = np.dot(inputs, self.weights) + self.biases
class Activation_ReLU:
def forward(self, inputs):
self.output= np.maximum(0, inputs)
class Activation_Softmax:
def forward (self, inputs):
exp_values = np.exp(inputs - np.max(inputs, axis = 1, keepdims= True ))
probabilities= exp_values/np.sum(exp_values, axis = 1, keepdims= True )
self.output = probabilities
class Loss:
def calculate(self, output, y):
sample_losses = self.forward(output, y)
data_loss = np.mean(sample_losses)
return data_loss

self.forwards((类似于调用方法,但有注册的钩子。这用于在调用实例名称时直接调用类中的方法。这些方法继承自nn。单元

https://gist.github.com/nathanhubens/5a9fc090dcfbf03759068ae0fc3df1c9

或者参考源代码:

https://github.com/pytorch/pytorch/blob/master/torch/nn/modules/module.py#L485

最新更新