tensorflow39《TensorFlow实战》笔记-07-03 TensorFlow实现Bidirectional LSTM Classifier code
2017-04-15 12:12
435 查看
# 《TensorFlow实战》07 TensorFlow实现循环神经网络及Word2Vec # win10 Tensorflow1.0.1 python3.5.3 # CUDA v8.0 cudnn-8.0-windows10-x64-v5.1 # filename:sz07.03.py # TensorFlow实现Bidirectional LSTM Classifier # 源码位置 # https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/bidirectional_rnn.py import tensorflow as tf import numpy as np from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) learning_rate = 0.01 max_samples = 400000 batch_size = 128 display_step=10 n_input = 28 n_steps = 28 n_hidden = 256 n_classes = 10 x = tf.placeholder("float", [None, n_steps, n_input]) 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("Iter " + str(step*batch_size) + ", Minibatch Loss = " + "{:.6f}".format(loss) + ", Training Accuracy= " + "{:.5f}".format(acc)) step += 1 print("Optimization Finished!") test_len = 10000 test_data = mnist.test.images[:test_len].reshape((-1, n_steps, n_input)) test_label = mnist.test.labels[:test_len] print("Testing Accuracy:", sess.run(accuracy, feed_dict={x:test_data, y:test_label})) ''' Iter 1280, Minibatch Loss = 2.086039, Training Accuracy= 0.17188 Iter 2560, Minibatch Loss = 1.309406, Training Accuracy= 0.46094 Iter 3840, Minibatch Loss = 1.036413, Training Accuracy= 0.63281 ... Iter 395520, Minibatch Loss = 0.006523, Training Accuracy= 1.00000 Iter 396800, Minibatch Loss = 0.014398, Training Accuracy= 0.99219 Iter 398080, Minibatch Loss = 0.014382, Training Accuracy= 0.99219 Iter 399360, Minibatch Loss = 0.018454, Training Accuracy= 0.99219 Optimization Finished! Testing Accuracy: 0.9863 '''
相关文章推荐
- tensorflow38《TensorFlow实战》笔记-07-02 TensorFlow实现基于LSTM的语言模型 code
- tensorflow35《TensorFlow实战》笔记-06-03 TensorFlow实现 GoogleInceptionV3 code
- tensorflow31《TensorFlow实战》笔记-04 TensorFlow实现自编码器及多层感知机 code
- tensorflow37《TensorFlow实战》笔记-07-01 TensorFlow实现Word2Vec code
- tensorflow41《TensorFlow实战》笔记-08-02 TensorFlow实现深度强化学习-估值网络 code
- Tensorflow实现 Bidirectional LSTM Classifier
- tensorflow34《TensorFlow实战》笔记-06-02 TensorFlow实现VGGNet code
- tensorflow40《TensorFlow实战》笔记-08-01 TensorFlow实现深度强化学习-策略网络 code
- tensorflow32《TensorFlow实战》笔记-05 TensorFlow实现卷积神经网络 code
- Tensorflow实现基于Bidirectional LSTM Classifier
- tensorflow30《TensorFlow实战》笔记-03 TensorFlow第一步 code
- 学习笔记TF036:实现Bidirectional LSTM Classifier
- Tensorflow实战学习(三十六)【实现Bidirectional LSTM Classifier】
- 学习笔记TF036:实现Bidirectional LSTM Classifier
- RNN-LSTM循环神经网络-03Tensorflow进阶实现
- tensorflow36《TensorFlow实战》笔记-06-04 TensorFlow实现 ResNet code
- 深度学习(08)_RNN-LSTM循环神经网络-03-Tensorflow进阶实现
- tensorflow33《TensorFlow实战》笔记-06-01 TensorFlow实现AlexNet code
- tensorflow48 《面向机器智能的TensorFlow实战》笔记-03-03 tensorflow基本矢量图、summary、feed_dict
- 深度学习(08)_RNN-LSTM循环神经网络-03-Tensorflow进阶实现