【发布时间】:2018-01-27 02:44:39
【问题描述】:
我对学习一些机器学习很感兴趣,所以我开始四处点击。我开始按照说明创建此代码。
from numpy import exp, array, random, dot
class NeuralNetwork():
def __init__(self):
# seed the genarator
random.seed(1)
self.synaptic_weights = 2 * random.random((3,1)) - 1
def __sigmoid(self, x):
return 1 /(1 + exp(-x))
def predict(self, inputs):
return self.__sigmoid(dot(inputs, self.synaptic_weights))
def __sigmoid_derivative(self, x):
return x * (x - 1)
def train(self, trainingSetInputs, trainingSetOutputs, numberOfIterations):
for iteration in range(numberOfIterations):
output = self.predict(trainingSetInputs)
error = trainingSetOutputs - output
adjustment = dot(trainingSetInputs.T, error *
self.__sigmoid_derivative(output))
self.synaptic_weights += adjustment
if __name__ == '__main__':
# make one network
neuralNetwork = NeuralNetwork()
print('random starting synaptic weights')
print(neuralNetwork.synaptic_weights)
# training data
trainingSetInputs = array([[0,0,1], [1,1,1], [1,0,1], [0,1,1]])
trainingSetOutputs = array([[0,1,1,0]]).T
#train the network 10000 times
neuralNetwork.train(trainingSetInputs, trainingSetOutputs, 10000)
print('new wheights')
print(neuralNetwork.synaptic_weights)
# test the network
print("testing")
print(neuralNetwork.think(array([1,0,1])))
我按照信中的说明进行操作,但也许我错过了什么? 他的教程是here。
编辑:我得到的错误是:'NeuralNetwork' 对象没有属性'think'
【问题讨论】:
-
您还没有创建一个名为
think()的方法,那么为什么要这样做呢? -
您发布的链接是针对 youtube.... 定义的神经网络也没有
think方法,因此该错误是意料之中的 -
您忘记在您的
NeuralNetwork()类中实现think()方法。 -
好吧对不起,这主要是我的错,我不是最好的程序员,虽然我正在努力变得更好
标签: python numpy neural-network