用户:四九圣尊查看:0 回复:8 评论:0 创建时间:2018-01-13T12:48:44
import numpy as np # sigmoid function def nonlin(x,deriv=False): if(deriv==True): return x*(1-x) return 1/(1+np.exp(-x)) # input dataset X = np.array([ [0,0,1], [0,1,1], [1,0,1], [1,1,1] ]) # output dataset y = np.array([[0,0,1,1]]).T print() # seed random numbers to make calculation # deterministic (just a good practice) ''' np.random.seed(1) ''' # initialize weights randomly with mean 0 syn0 = 2*np.random.random((3,1)) - 1 print(syn0) for iter in range(100): # forward propagation l0 = X l1 = nonlin(np.dot(l0,syn0)) # how much did we miss? l1_error = y - l1 # multiply how much we missed by the # slope of the sigmoid at the values in l1 l1_delta = l1_error * nonlin(l1,True) # update weights syn0 += np.dot(l0.T,l1_delta) print ("Output After Training:") print (l1)
是不是他就是先生成几个随机的数值,然后然后不断迭代他,计算他和准确值的差,
l1_delta = l1_error * nonlin(l1,True) # update
syn0 += np.dot(l0.T,l1_delta)
这里是什么意思?他是如何调整权重的?nonlin这个代码什么意思?l1_delta是不是就是新的权重?那么np.dot(l0.T,l1_delta)他又是怎么把他更新到新的矩阵里去的呢?
syn0 = 2*np.random.random((3,1)) - 1
这里一共有4个要预测的结果,可这里只输出了3个,这是不是代表这里有三个神经元呢?这些值是不是神经元的权重
点赞0
评论
def nonlin(x,deriv=False): if(deriv==True): return x*(1-x) return 1/(1+np.exp(-x))
这个函数是一个什么公式?有什么用?
点赞0
评论
现在在做一个颜值计算器,但是都是机器的审美。
能不能神经元算法,输入几张图片,人工打分。然后让他训练一张图片,不断地强化他的权重准确性。这样的算法该怎么写呢?
def nonlin(x,deriv=False):
if(deriv==True):
return x*(1-x)
else:
return 1/(1+np.exp(-x))
还有这个公式是干什么的?能用通俗的语言解释下吗?
而且这个模型,就是我们训练后的,权重值都很稳定,是不是就可以让他去计算别的东西了呢?怎么带入呢
点赞0
评论