用自己实现的全连接神经网络分类MNIST
来源:互联网 发布:淘宝服装批发进货网 编辑:程序博客网 时间:2024/04/29 19:21
# 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 count
0 0
- 用自己实现的全连接神经网络分类MNIST
- 简单全连接神经网络--MNIST
- Python 神经网络实现MNIST分类
- 全连结神经网络实现mnist字符识别
- 最简单的全连接神经网络实现
- 3用于MNIST的卷积神经网络-3.10为非线性全连接层添加正则化损失
- tensorflow 全连接神经网络 MNIST手写体数字识别
- MNIST数据识别--全连接神经网络
- 全连接神经网络matlab实现
- 全连接神经网络 python实现
- 卷积神经网络(CNN)的简单实现(MNIST)
- 卷积神经网络(CNN)的简单实现(MNIST)
- 卷积神经网络(CNN)的简单实现(MNIST)
- TensorFlow学习记录--3.MNIST从低级到高级(从全连接网络到卷积神经网络的解释)
- 3用于MNIST的卷积神经网络-3.9增加一个非线性全连接层并观察过拟合现象
- 使用keras实现简单的前向全连接神经网络
- 使用keras实现简单的前向全连接神经网络
- 全连接的BP神经网络
- [MySQL] 索引类型
- Native Client - Application - File I/O
- 点击超链接不跳转,不刷新页面
- React学习笔记
- MySQL之高占用CPU处理
- 用自己实现的全连接神经网络分类MNIST
- 什么是orm框架,Hibernate就是
- 程序员有趣的面试智力题
- Native Client - Application - The nacl_io Library
- idea2016的alt+enter键的替换和简介
- UIScorllView详解
- 设置监听密码
- linux之sed用法
- linux find用法实例