1. 程式人生 > >遞迴神經網路RNN

遞迴神經網路RNN

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

# 載入資料
mnist = input_data.read_data_sets('MNIST_data', one_hot=True)

# 輸入圖片是28*28
n_inputs = 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 = [batch_size, max_time, n_inout]
inputs = tf.reshape(X, [-1, max_time, n_inputs]) # 定義LSTM基本CELL lstm_cell = tf.contrib.rnn.core_rnn_cell.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(labels=y, logits=prediction)) # 使用AdamOptimizer進行優化 train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy) # 結果放在一個布林型列表中 crroect_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(prediction, 1)) # 求準確率 accuracy = tf.reduce_mean(tf.cast(crroect_prediction, tf.float32)) # 初始化 init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) for epoch in range(6): 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))

Iter 0, Testing Accuracy= 0.7428
Iter 1, Testing Accuracy= 0.7918
Iter 2, Testing Accuracy= 0.8366
Iter 3, Testing Accuracy= 0.8964
Iter 4, Testing Accuracy= 0.9123
Iter 5, Testing Accuracy= 0.9263

相關推薦

神經網路(RNN)隨記

基本概念 想法:在之後的輸入要把之前的資訊利用起來。W3就相當於對中間資訊進行一個保留。 X和U組合成一個特徵圖,A表示一個記憶單元。 V矩陣相當於對St進行一個全連線的操作。最終的輸出需要通過softmax將向量轉化成概率的形式。RNN最適合做自然語言處理

神經網路RNN網路 LSTM

前言: 根據我本人學習 TensorFlow 實現 LSTM 的經歷,發現網上雖然也有不少教程,其中很多都是根據官方給出的例子,用多層 LSTM 來實現 PTBModel 語言模型,比如: tensorflow筆記:多層LSTM程式碼分析 但是感覺這些例子還是

吳恩達Coursera深度學習(5-1)神經網路 RNN

Class 5:序列模型 Sequence Models Week 1:迴圈神經網路 RNN(Recurrent) 目錄 本課程將教你如何建立自然語言,音訊和其他序列資料的模型。 由於深入的學習,序列演算法的執行速度遠遠超過兩年前,這

二十六、圖解神經網路(RNN)

聊天機器人是需要智慧的,而如果他記不住任何資訊,就談不上智慧,遞迴神經網路是一種可以儲存記憶的神經網路,LSTM是遞迴神經網路的一種,在NLP領域應用效果不錯,本節我們來介紹RNN和LSTM 遞迴神經網路 遞迴神經網路(RNN)是兩種人工神經網路的總稱。一種是時間遞迴神經網路(recurrent n

神經網路RNN

import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 載入資料 mnist = input_data.read_data_sets('MNIST

Tensorflow— 神經網路RNN

程式碼:import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('MNIST_data/', o

李理:神經網路RNN扼要

1. 內容簡介前面我們介紹了CNN,這對於Image Caption來說是基礎的特徵提取部分,或者說是對影象的“理解”部分,而接下來需要用一句話來“描述”影象的內容,這就要藉助RNN了。 我們這幾篇文章首先會介紹RNN/LSTM的基本概念和實現方法。這一部分的主

PyTorch--雙向神經網路(B-RNN)概念,原始碼分析

  關於概念:   BRNN連線兩個相反的隱藏層到同一個輸出.基於生成性深度學習,輸出層能夠同時的從前向和後向接收資訊.該架構是1997年被Schuster和Paliwal提出的.引入BRNNS是為了增加網路所用的輸入資訊量.例如,多層感知機(MLPS)和延時神經網路(TDNNS)在輸入資料的靈活性方面是非

【深度學習】6:RNN神經網路原理、與MNIST資料集實現數字識別

前言:自己學習研究完CNN卷積神經網路後,很久的一段時間因為要完成自己的畢業設計就把更新部落格給耽擱了。瞎忙了這麼久,還是要把之前留的補上來。因為“種一棵樹最好的時間是在十年前,其次就是現在!” –—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—

RNN神經網路的詳細推導及C++實現

//讓程式自己學會是否需要進位,從而學會加法 #include "iostream" #include "math.h" #include "stdlib.h" #include "time.h" #include "vector" #incl

每個人都能徒手寫神經網路–手把手教你寫一個RNN

總結: 我總是從迷你程式中學到很多。這個教程用python寫了一個很簡單迷你程式講解遞迴神經網路。 遞迴神經網路即RNN和一般神經網路有什麼不同?出門左轉我們一篇部落格已經講過了傳統的神經網路不能夠基於前面的已分類場景來推斷接下來的場景分類,但是RNN確有一定記

RNN神經網路(八)

RNN遞迴神經網路首先來回顧一下之前的神經網路:在這個神經網路裡面,沒一個輸入都是獨立的,沒有什麼影響。每一個樣本輸入進行一個引數的更新互相沒有聯絡。而遞迴神經網路就是要解決這種互相獨立的問題。比如“我

用sklearn和tensorflow做boston房價的迴歸計算的比較(3)--RNN神經網路LSTM

在tensorflow裡RNN才是做迴歸計算的正規軍,其中LSTM更是讓人工智慧有了記憶,如果cnn最適合做的是影象識別,那麼LSTM就是視訊識別。網上的教程多是用正餘弦資料在做預測,輸入輸出都是一維,我這用波士頓房價,輸入是13個特徵! 注意與前面兩個模型不同的是,沒有用

Tensorflow學習筆記(第四天)—神經網路

一、首先下載來源於 Tomas Mikolov 網站上的 PTB 資料集 http://www.fit.vutbr.cz/~imikolov/rnnlm/simple-examples.tgz 二、需要的程式碼: 這裡只簡單的放了一些程式碼

(轉載)深度學習基礎(7)——神經網路

原文地址:https://zybuluo.com/hanbingtao/note/626300 轉載在此的目的是自己做個筆記,日後好複習,如侵權請聯絡我!!   在前面的文章中,我們介紹了迴圈神經網路,它可以用來處理包含序列結構的資訊。然而,除此之外,資訊往往還存在著諸如樹結構、圖結構等更復雜的結構。對於

[譯]使用神經網路(LSTMs)對時序資料進行預測

原文地址:A Guide For Time Series Prediction Using Recurrent Neural Networks (LSTMs) 原文作者:Neelabh Pant 譯文出自:掘金翻譯計劃 本文永久連結:github.com/xitu/gold-m

NeuralTalk:一種基於Python+numpy使用語句描述影象的多模態神經網路的例程

NeuralTalk工程的流程如下: The pipeline for the project looks as follows: 輸入資料使用Amazon Mechanical Turk收集的影象和5組語句描述的資料集。 The input is a dataset of im

長短期記憶(LSTM)系列_2.1~2.3、用神經網路簡要介紹序列預測模型

前置課程 https://machinelearningmastery.com/sequence-prediction/ https://machinelearningmastery.com/gentle-introduction-long-short-term-memory-network

神經網路

遞迴神經網路 序列。根據您的背景,您可能想知道:什麼使Recurrent Networks如此特別?Vanilla神經網路(以及卷積網路)的一個明顯侷限是它們的API太受約束:它們接受固定大小的向量作為輸入(例如影象)併產生固定大小的向量作為輸出(例如不同類別的概率) )。不僅如此:這些模型使用固定數量的計

使用神經網路識別垃圾簡訊

1.測試資料準備 首先匯入本地準備的spam檔案 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selec