mysql连接测试不成功的原因有哪些
224
2022-09-21
用自己实现的全连接神经网络分类MNIST
# coding:utf-8import numpy as npimport mnist_loader# 用full-connected神经网络搞的LeCun的手写数字识别# 784*30*10speed = 1def sigmoid(z): """The sigmoid function.""" return 1.0 / (1.0 + np.exp(-z))def sigmoid_prime(z): """Derivative of the sigmoid function.""" return sigmoid(z) * (1.0 - sigmoid(z))W = []W1 = np.random.randn(30, 784)W2 = np.random.randn(10, 30)W.append(W1)W.append(W2)b = []b1 = np.random.randn(30,1)b2 = np.random.randn(10,1)b.append(b1)b.append(b2)training_data, validation_data, test_data = mnist_loader.load_data_wrapper()for i in range(0, 50000): zs = [] activations = [] activations.append(training_data[i][0]) z0 = np.dot(W[0], training_data[i][0]) + b[0] zs.append(z0) a1 = sigmoid(z0) activations.append(a1) z1 = np.dot(W[1], a1) + b[1] zs.append(z1) a2 = sigmoid(z1) activations.append(a2) error = [] error0 = activations[2] - training_data[i][1] error0 = error0 * sigmoid_prime(zs[1]) error.append(error0) error1 = np.dot(W[1].transpose(),error[0]) error1 = error1 * sigmoid_prime(zs[0]) error.append(error1) print i dw0 = np.dot(error[1], activations[0].transpose()) dw1 = np.dot(error[0], activations[1].transpose()) W[0] = W[0] - dw0 b[0] = error[1] - b[0] W[1] = W[1] - dw1 b[1] = error[0] - b[1]count = 0for i in range(100): a = test_data[i][0] for bb, ww in zip(b, W): a = sigmoid(np.dot(ww, a) + bb) print a print test_data[i][1] if np.argmax(a) == test_data[i][1]: count = count + 1print
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~