Al definir la función de activación, ¿debo escribir lambda x: numpy.tanh (x) O solo numpy.tanh?

Al definir la función de activación (tanh), ¿debo escribir lambda x: numpy.tanh(x)? ¿O debería escribir solo la función de activación = numpy.tanh?

Esta es mi clase de código neuralNetwork:

# initialise the neural network
def __init__(self, inputnodes, hiddennodes, outputnodes, learningrate):
    # set number of nodes in each input, hidden, output layer
    self.inodes = inputnodes
    self.hnodes = hiddennodes
    self.onodes = outputnodes
    
    # link weight matrices, wih and who
    # weights inside the arrays are w_i_j, where link is from node i to node j in the next layer
    # w11 w21
    # w12 w22 etc 
    self.wih = numpy.random.normal(0.0, pow(self.inodes, -0.5), (self.hnodes, self.inodes))
    self.who = numpy.random.normal(0.0, pow(self.hnodes, -0.5), (self.onodes, self.hnodes))

    # learning rate
    self.lr = learningrate
    
    # activation function is the sigmoid function
    self.activation_function = numpy.tanh
    
    pass
Answer

la diferencia es que

g = lambda x: f(x)

contra

g = f

crea una función anónima adicional que actúa llamando a f. En consecuencia, esto introdujo un costo computacional adicional sin ningún beneficio en absoluto.