nn = NeuralNetwork(sizes=[1, 5, 1], activation_function="sigmoid") y = nn.eval(1.0) print y gamma = np.random.randn(nn.n) * 0.2 for j in range(10000): nn.set_from_array(gamma) dJdgamma = np.zeros_like(gamma) J = 0.0 for i in range(len(xd)): xin = xd[i] yeval = nn.eval(xin) #print yeval J += (yeval - yd[i])**2 dydgamma = nn.dydgamma(xin, gamma) dJdgamma += 2.0 * (yeval - yd[i]) * dydgamma gamma = gamma - dJdgamma / np.abs(dJdgamma) * 0.001 if j % 100 == 0: print j, J #print gamma yeval = nn.veval(xd) figure() plot(xd, yd, 'b.') plot(xd, yeval, 'rx') nn.save() nn.load() yeval = nn.veval(xd)