2017-11-19 8 views
-6

Ich lese das Buch "Make Your Own Neural Network" von Tariq Rashid."Name 'Selbst' ist nicht definiert"

Dies ist mein Code:

Import numpy

class neuralNetwork: 

    def _init_(self,inputnodes,hiddennodes,outputnodes,learningrate): 
     self.inodes=inputnodes 
     self.hnodes=hiddennodes 
     self.onodes=outputnodes 

     self.lr=learningrate 
     pass 

    def train(): 
     pass 

    def query(): 
     pass 

self.wih=(numpy.random.rand(self.hnodes,self.inodes)-0.5) 
self.who=(numpy.random.rand(self.onodes,self.hnodes)-0.5) 

Es diesen Fehler erzeugt:

NameError: name 'self' is not defined 

Was mache ich falsch?

+3

Ich würde lieber mit einem grundlegenden Tutorial 'Python' beginnen, dann mit den fortgeschrittensten Themen ... Was Ihren Fehler angeht: Sie müssen' numpy' vorher importieren, 'numpy' ist eine berühmte Bibliothek für alle Arten von mathematischem Zeug. – Jan

+0

Sie müssen es mit 'import numpy' importieren, aber ich stimme @Jan zu. – DimKoim

+0

Haben Sie 'numpy' importiert? Ihr Fragentitel ist ein anderer Fehler als der in Ihrer Frage. – roganjosh

Antwort

1

Sie müssen zuerst das Paket mit dem Befehl installieren:

pip3 install numpy 

auf Ihrem Shell (ich nehme an, Sie verwenden Python 3).

Nachdem Sie auf der oberen Code schreiben müssen:

import numpy 

EDIT: Mit einer schnellen Suche auf Google, fand ich dies:

class 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 #why can't we immediately use the inputnodes? 
     self.hnodes = hiddennodes 
     self.onodes = outputnodes 

     #Setting the weights: 
     self.wih = np.random.normal(0.0, pow(self.hnodes, -0.5),(self.hnodes,self.inodes)) 
     self.who = np.random.normal(0.0, pow(self.onodes, -0.5),(self.onodes, self.hnodes))  

     #learning rate: 
     self.lr = learningrate 

     #activation function: 
     self.activation_function = lambda x: scipy.special.expit(x) 

     pass 

Sie sollten zunächst Python Tutorials überprüfen und sein vorsichtig mit der Einrückung.

+0

Ich installierte und importierte numpy, aber es zeigt mir "NameError: Name 'self' ist nicht definiert." – justbeginner