deep_learning_LSTM长短期记忆神经网络处理Mnist数据集
2024-09-03 19:53:54
1、RNN(Recurrent Neural Network)循环神经网络模型
详见RNN循环神经网络:https://www.cnblogs.com/pinard/p/6509630.html
2、LSTM(Long Short Term Memory)长短期记忆神经网络模型
详见LSTM长短期记忆神经网络:http://www.cnblogs.com/pinard/p/6519110.html
3、LSTM长短期记忆神经网络处理Mnist数据集
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data from tensorflow.contrib import rnn # 载入数据集 mnist = input_data.read_data_sets( "MNIST_data/" , one_hot = True ) # 输入图片是28*28 n_inputs = 28 # 输入一行,一行有28个数据(28个像素点),即输入序列长度为28 max_time = 28 # 一共28行 lstm_size = 100 # 隐层单元 n_classes = 10 # 10个分类 batch_size = 50 # 每批次50个样本 n_batch = mnist.train.num_examples / / batch_size # 计算一共有多少个批次 # 这里的none表示第一个维度可以是任意的长度 x = tf.placeholder(tf.float32, [ None , 784 ]) # 正确的标签 y = tf.placeholder(tf.float32, [ None , 10 ]) # 初始化权值 weights = tf.Variable(tf.truncated_normal([lstm_size, n_classes], stddev = 0.1 )) # 初始化偏置值 biases = tf.Variable(tf.constant( 0.1 , shape = [n_classes])) # 定义RNN网络 def RNN(X, weights, biases): inputs = tf.reshape(X, [ - 1 , max_time, n_inputs]) # 定义LSTM基本CELL lstm_cell = rnn.BasicLSTMCell(lstm_size) # final_state[0]是cell state # final_state[1]是hidden_state outputs, final_state = tf.nn.dynamic_rnn(lstm_cell, inputs, dtype = tf.float32) results = tf.nn.softmax(tf.matmul(final_state[ 1 ], weights) + biases) return results # 计算RNN的返回结果 prediction = RNN(x, weights, biases) # 损失函数 cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits = prediction, labels = y)) # 使用AdamOptimizer进行优化 train_step = tf.train.AdamOptimizer( 1e - 4 ).minimize(cross_entropy) # 结果存放在一个布尔型列表中 correct_prediction = tf.equal(tf.argmax(y, 1 ), tf.argmax(prediction, 1 )) # argmax返回一维张量中最大的值所在的位置 # 求准确率 accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) # 把correct_prediction变为float32类型 # 初始化 init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) for epoch in range ( 21 ): for batch in range (n_batch): batch_xs, batch_ys = mnist.train.next_batch(batch_size) sess.run(train_step, feed_dict = {x: batch_xs, y: batch_ys}) acc = sess.run(accuracy, feed_dict = {x: mnist.test.images, y: mnist.test.labels}) print ( "Iter " + str (epoch) + ", Testing Accuracy= " + str (acc)) |
结果为:
最新文章
- DataTable转换为List<;Model>;的通用类
- Android(java)学习笔记106-1:深入分析Java ClassLoader原理
- jquery里的宽度详解
- Java网络编程(TCP协议-练习-上传文本文件)
- UISegmentedControl UISlider
- 函数嵌套 lisp表达式求值
- Servlet配置
- Hibernate之综合问题
- datagrid 新增,并行内编辑,提交保存
- 面向对象OOP概念描述
- vm12 安装ubuntu15.10详细图文教程 虚拟机安装ubuntu安装 ubuntu更新软件 ubuntu一直卡在下载语言怎么办?
- Spring Boot:Thymeleaf 使用详解
- 二十二、Command 命令模式
- 4-2 requests库使用
- EC20指令测试
- 设置SSH免密码登录
- 大数据入门到精通6---spark rdd reduce by key 的使用方法
- 基于asp.net + easyui框架,一步步学习easyui-datagrid——实现分页和搜索(二)
- 【转】Ionic3在ts中获取html中值的方法
- node学习笔记5——post数据传递
热门文章
- Selenium 2自动化测试实战27(unittest重要概念,test fixture、test case、test suite和test runne)
- git介绍以及常用命令操作
- SQL- 将一张表的数据插入到另一张表,表结构不一致(加条件)
- HNU_团队项目_数据库框架Mybatis_环境配置和样例
- unity混音
- PJzhang:从js文件中寻找子域名的SubDomainizer
- 【FZU - 2150】Fire Game(bfs)
- 【DSP开发】【Linux开发】IIC设备驱动程序
- Java 200道题
- selenium-server--chromedriver环境