Funktionen: Missing 1 required positional argument(self)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Hypec
User
Beiträge: 183
Registriert: Mittwoch 1. August 2018, 16:11

Hallo,
ich habe das Problem das wenn ich die Funktion unten aufrufen möchte das ich dann den Fehler:
TypeError: feedforward() missing 1 required positional argument: 'input_array'
bekomme obwohl ich sie ja eigentlich richtig aufrufe. Das Problem liegt bei dem self. Weiß irgendjemand wie ich dieses Problem lösen kann? ( Ja ich weiß die feedforward Funktion ist noch nicht Fertig und erzeugt wenn ich sie dann Aufrufen kann auch einen Fehler)

Code: Alles auswählen

import nn

def main():
    neuralnetwork = nn.Nn(3, 3, 1)

    inputs = [1, 0]
    
    output = nn.Nn.feedforward(inputs);
    print(output)
    
main()

Code: Alles auswählen

import matrix

class Nn:

    def __init__(self, input_nodes, hidden_nodes, output_nodes):
        self.input_nodes = input_nodes
        self.hidden_nodes = hidden_nodes
        self.output_nodes = output_nodes

        self.weights_ih = matrix.Matrix([self.hidden_nodes, self.input_nodes])
        self.weights_ho = matrix.Matrix([self.output_nodes, self.hidden_nodes])
        self.weights_ih = matrix.Matrix.randomize(self.weights_ih)
        self.weights_ho = matrix.Matrix.randomize(self.weights_ho)

        self.bias_h = matrix.Matrix([self.hidden_nodes, 1])
        self.bias_o = matrix.Matrix([self.output_nodes, 1])

        print(self.weights_ih)
        print(self.weights_ho)

   def feedforward(self, input_array):

        inputs = matrix.Matrix.get_values(input_array)

        hidden = matrix.Matrix.scale(self.weights_ih, inputs)
        hidden = matrix.Matrix.add(self.bias_h)

        return guess
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@Hypec: das liegt daran, dass Du es falsch aufrufst. Du rufst die Funktion auf der Klassendefinition auf, statt die Methode der Instanz zu benutzen:

Code: Alles auswählen

output = neuralnetwork.feedforward(inputs)
Antworten