双向循环神经网络tensorflow实现
2017-06-20 16:06
579 查看
双向循环神经网络不仅能捕获当前状态与之前状态的联系,也能捕获与之后的状态的联系。
#coding:utf-8 import tensorflow as tf import numpy as np from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('/tmp/data',one_hot = True) learning_rate = 0.01 max_samples = 400000 batch_size = 128 display_step = 10 n_input = 28 #图像的宽度 n_steps = 28 #LSTM的展开步数,图像的高 n_hidden = 256 n_classes = 10 x = tf.placeholder('float',[None,n_steps,n_input])#none 高度 宽度 y = tf.placeholder('float',[None,n_classes]) weights = tf.Variable(tf.random_normal([2*n_hidden,n_classes])) biases = tf.Variable(tf.random_normal([n_classes])) def BiRNN(x,weights,biases): x = tf.transpose(x,[1,0,2]) x = tf.reshape(x,[-1,n_input]) x = tf.split(x,n_steps) lstm_fw_cell = tf.contrib.rnn.BasicLSTMCell(n_hidden,forget_bias = 1.0) lstm_bw_cell = tf.contrib.rnn.BasicLSTMCell(n_hidden,forget_bias = 1.0) outputs,_,_ = tf.contrib.rnn.static_bidirectional_rnn(lstm_fw_cell,lstm_bw_cell,x,dtype = tf.float32) return tf.matmul(outputs[-1],weights)+biases pred = BiRNN(x,weights,biases) cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits = pred,labels = y)) optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) correct_pred = tf.equal(tf.argmax(pred,1),tf.argmax(y,1)) accuracy = tf.reduce_mean(tf.cast(correct_pred,tf.float32)) init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) step = 1 while step*batch_size<max_samples: batch_x,batch_y = mnist.train.next_batch(batch_size) batch_x = batch_x.reshape((batch_size,n_steps,n_input)) sess.run(optimizer,feed_dict={x:batch_x,y:batch_y}) if step % display_step ==0: acc = sess.run(accuracy,feed_dict={x:batch_x,y:batch_y}) loss = sess.run(cost,feed_dict={x:batch_x,y:batch_y}) print "step",step," acc = ",acc," lost = ",loss step += 1 print "finished!"
相关文章推荐
- TensorFlow实现经典深度学习网络(7):TensorFlow实现双向长短时记忆循环神经网络
- RNN-循环神经网络-02Tensorflow中的实现
- TensorFlow - 循环神经网络(RNN)(NumPy实现)
- 使用循环神经网络实现语言模型——源自《TensorFlow:实战Goole深度学习框架》
- 初探循环神经网络 RNN 及 TensorFlow 实现
- RNN-LSTM循环神经网络-03Tensorflow进阶实现
- tensorflow入门3 卷积神经网络、循环神经网络以及双向lstm手写体识别
- 深度学习(08)_RNN-LSTM循环神经网络-03-Tensorflow进阶实现
- tensorflow实现循环神经网络
- TensorFlow实现RNN循环神经网络
- tensorflow 学习笔记12 循环神经网络RNN LSTM结构实现MNIST手写识别
- tensorflow实现循环神经网络
- tensorflow实现循环神经网络
- TensorFlow练手项目一:使用循环神经网络(RNN)实现影评情感分类
- RNN-LSTM循环神经网络-03Tensorflow进阶实现
- 深度学习之循环神经网络RNN概述,双向LSTM实现字符识别
- 深度学习(08)_RNN-LSTM循环神经网络-03-Tensorflow进阶实现
- 深度学习(07)_RNN-循环神经网络-02-Tensorflow中的实现
- 基于循环神经网络实现基于字符的语言模型(char-level RNN Language Model)-tensorflow实现
- TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络