资源简介
mnist手写字体识别之BP,包括了python代码,mnist手写字体数据集,本科实验作业,讲的是BP神经网络算法的实现
代码片段和文件信息
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import matplotlib.pyplot as plt
mnist = input_data.read_data_sets(“MNIST_data/“ one_hot = True)
#建立BP神经网络模型
num_classes = 10#数据类型0-9
input_size = 784#28*28
hidden_units_size = 30#层节点数
batch_size = 1000#
training_iterations = 1#迭代次数
# 设置变量
X = tf.placeholder (tf.float32 shape = [None input_size])
Y = tf.placeholder (tf.float32 shape = [None num_classes])
W1 = tf.Variable (tf.random_normal ([input_size hidden_units_size]stddev = 0.1))#hidden_units_size = 30#正态分布随机数
B1 = tf.Variable (tf.constant (0.1)[hidden_units_size])#常数为1,形状为(11)
W2 = tf.Variable (tf.random_normal ([hidden_units_sizenum_classes] stddev = 0.1))#正态分布随机数
B2 = tf.Variable (tf.constant (0.1) [num_classes])
# 搭建计算网络 使用 relu 函数作为激励函数 这个函数就是 y = max (0x) 的一个类似线性函数 拟合程度还是不错的
#隐藏层
hidden_opt = tf.matmul (X W1) + B1#矩阵运算
hidden_opt = tf.nn.relu (hidden_opt)#激活函数
#输出层
final_opt = tf.matmul (hidden_opt W2) + B2#矩阵运算
final_opt = tf.nn.relu (final_opt)#激活函数最终的输出结果
c = tf.square(Y - final_opt)
loss = tf.reduce_mean(c)
#loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits (labels = Y logits = final_opt))#损失函数交叉熵方法
opt = tf.train.GradientDescentOptimizer (0.1).minimize (loss)
print(opt)
correct_prediction = tf.equal (tf.argmax (Y 1) tf.argmax (final_opt 1))
accuracy = tf.reduce_mean (tf.cast (correct_prediction ‘float‘))#将张量转化成float
# 进行计算 打印正确率初始化
sess = tf.Session ()#生成能进行TensorFlow计算的类
init = tf.global_variables_initializer ()#全局变量
sess.run (init)
for i in range (training_iterations) :
batch = mnist.train.next_batch (batch_size)#每次迭代选用的样本数100
batch_input = batch[0]
batch_labels = batch[1]
training_loss = sess.run ([opt loss] feed_dict = {X: batch_input Y: batch_labels})
if (i+1) % 1000 == 0 :
train_accuracy = sess.run (accuracy feed_dict = {X: batch_inputY: batch_labels})
print (“step : %d training accuracy = %g “ % (i+1 train_accuracy))
###测试集输出结果可视化
def res_Visual(n):
#sess=tf.Session()
#sess.run(tf.global_variables_initializer())
final_opt_a=sess.run(tf.argmax (final_opt 1)feed_dict = {X: mnist.test.imagesY: mnist.test.labels})
plt.title(final_opt_a[n])
print(final_opt)
#图片可视化展示
img = mnist.test.images[n].reshape((2828))#读取每行数据,格式为Ndarry
plt.imshow(img cmap=‘Greys‘ interpolation=‘nearest‘)#可视化
plt.show()
res_Visual(14)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-06-21 12:45 作业四 BP神经网络\MNIST_data\
文件 1648877 2019-06-10 15:18 作业四 BP神经网络\MNIST_data\t10k-images-idx3-ubyte.gz
文件 4542 2019-06-10 15:18 作业四 BP神经网络\MNIST_data\t10k-labels-idx1-ubyte.gz
文件 9912422 2019-06-10 15:18 作业四 BP神经网络\MNIST_data\train-images-idx3-ubyte.gz
文件 28881 2019-06-10 15:18 作业四 BP神经网络\MNIST_data\train-labels-idx1-ubyte.gz
文件 2873 2019-06-13 14:48 作业四 BP神经网络\bp.py
目录 0 2019-06-21 12:45 作业四 BP神经网络\
相关资源
- LBPH算法人脸识别代码.rar
- python3.6.4中文文档说明chm&pdf;双格式
- 随机森林对数据分类的Python实现
- python3+Django微博源代码和开发环境
- Python-数学建模竞赛中所使用的相关算
- Python-pycharmpython36Django20mysql用户登录与
- Python-SandBox是一个基于django框架开发的
- Python-MonoDepthPyTorchPyTorch无监督单目深
- Python-Camelot一个可以轻松地从PDF文件中
- Python-Ansible一个非常简单的IT自动化平
- Python-用Tensorflowjs实现的可回收非可回
- 《python深度学习》弗朗索瓦肖莱 高清
- Python高性能编程High Performance Python 中
- NumPy攻略:Python科学计算与数据分析
- Python Data Analysis数据分析基础(中文
- Python网络编程攻略 (带目录高清版)
- 对比Excel,轻松学习Python数据分析1-
- 深度学习入门:基于Python的理论与实
- opencv_python-2.4.13.2-cp27-cp27m-win_amd64.wh
- Python Deep Learning: Exploring deep learning
- python编程从入门到实践高清pdf +廖雪峰
- Python数据处理 Data Wrangling with Python 中
- 基于卷积神经网络的人脸识别
- rhino.python 教程 英文
- Introduction to Computation and Programming Us
- Python书籍
- Advanced Algorithmic Trading
- python-2.7.10.amd64.msi
- Python2.6.6 绿色版
- Python-3.7.1.tgz
评论
共有 条评论