neuralnet_mnist 神经网络推理处理 完全解析
2018-10-30 00:50
113 查看
# coding: utf-8 import sys, os sys.path.append(os.pardir) # 为了导入父目录的文件而进行的设定 import numpy as np import pickle from dataset.mnist import load_mnist from common.functions import sigmoid, softmax def get_data(): (x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, flatten=True, one_hot_label=False) return x_test, t_test#load_mnist读取MNIST数据返回(训练图像,训练标签),(测试图像,测试标签) #Pickle将对象转换为可以传输或存储的格式 def init_network(): with open("sample_weight.pkl", 'rb') as f:#读取权重参数文件 network = pickle.load(f)#加载权重参数(反序列化) return network #X:787 W1:784*50 W2:50*100 W3:100*10 def predict(network, x): W1, W2, W3 = network['W1'], network['W2'], network['W3'] b1, b2, b3 = network['b1'], network['b2'], network['b3'] # b1:50 b2:100 b3:10 a1 = np.dot(x, W1) + b1#np.dot:点积(x点积W1+b1) z1 = sigmoid(a1)#signoid函数 a2 = np.dot(z1, W2) + b2#np.dot:点积 z2 = sigmoid(a2)#signoid函数 a3 = np.dot(z2, W3) + b3#np.dot:点积 y = softmax(a3)#softmax函数 return y x, t = get_data()#读取MNIST数据返回 x(训练图像,训练标签),t(测试图像,测试标签) network = init_network()#加载权重参数(反序列化) netowrk accuracy_cnt = 0 for i in range(len(x)): y = predict(network, x[i])#计算出结果十个 p= np.argmax(y) # 获取概率最高的元素的索引 if p == t[i]:#测试结果与标签结果一致说明识别正确 accuracy_cnt += 1#数量加以 #打印识别率 正确数/总数 print("Accuracy:" + str(float(accuracy_cnt) / len(x)))
Accuracy:0.9352
注释:sample_weight.pkl文件随后上传
阅读更多相关文章推荐
- 反相传播 学习神经网络实例 完全解析(tensorflow笔记
- Tensorflow自我训练进阶(代码+注解)【2】第一个神经网络--简单感知器处理MNIST
- linux网络配置完全解析
- tensorflow学习笔记四:mnist实例--用简单的神经网络来训练和测试
- 完全云端运行:使用谷歌CoLaboratory训练神经网络
- c#网络通信框架networkcomms内核解析之二 消息处理流程
- HTMLParser入门_01_网络爬虫的雏形_解析文章和处理文章中的图片
- Android Volley完全解析(二),使用Volley加载网络图片
- 神经网络中 BP 算法的原理与 Python 实现源码解析
- 在图像处理方向上用神经网络(CNN)来实现,下面是几个比较好的例子。
- Android 6.0 运行时权限处理完全解析
- Android异步消息处理机制完全解析,带你从源码的角度彻底理解
- keras 学习笔记:从头开始构建网络处理 mnist
- Android异步消息处理机制完全解析,带你从源码的角度彻底理解
- Android Volley完全解析(二),使用Volley加载网络图片
- Android 6.0 运行时权限处理完全解析
- 线性神经网络处理异或问题
- Tensorflow-浅层神经网络(MNIST数据集)
- Python图像处理(14):神经网络分类器
- Android Volley完全解析(二),使用Volley加载网络图片