1.簡單的rnn網路:rnn的公式可以是y=φ(wh+b),簡單的rnn網路也被稱為elman網路。
2.改進的rnn網路:當輸出取決於序列的前乙個和後乙個元素時,使用雙向rnn(brnn)。brnn通過堆疊兩個rnn(前向層和後向層)來實現,並且輸出都是rnn隱藏狀態的結果。在前向層中,記憶狀態h從時間步長t流向時間步長t+1,而在後向層中記憶狀態從步長t流向時間步長t-1。兩個層在時間步長t處採用相同的輸入x,但在時間步長t處共同產生輸出。
深度雙向rnn(dbrnn):進一步擴充套件了brnn,新增了多個網路層,通過堆疊brnn,可以讓dbrnn具有層次結構,在brnn中同一層的每個單元格使用相同的引數,但在dbrnn中每個退跌使用不同的引數。
3.lstm網路:通過增加用於控制對過去資訊訪問的門來解決梯度消失或梯度**的問題。構建lstm網路的模組稱為單元(cell),當長序列通過時,lstm單元通過選擇性的學習或刪除資訊以便能更有效的訓練模型。組成單元的函式被稱為門。前面有節rnn的部落格也說到了lstm網路,並且有內部流**
import keras
import os
import sklearn.datasets as detasetslib
from keras.models import sequential
from keras.layers import dense,activation
from keras.layers.recurrent import ******rnn
from keras.optimizers import rmsprop
from keras.optimizers import sgd
獲取mnist資料並從一維結構中的784畫素轉化為二維結構中28*28畫素
from tensorflow.examples.tutorials.mnist import input_data
# mnist=input_data.read_data_sets(os.path.join(datasetslib.datasets_root,'mnist'),one_hot=true)
mnist=input_data.read_data_sets(
'mnist_data'
,one_hot=
true
)x_train=mnist.train.images
x_test=mnist.test.images
y_train=mnist.train.labels
y_test=mnist.test.labels
n_classes=
10x_train=x_train.reshape(-1
,28,28
)x_test=x_test.reshape(-1
,28,28
)
在keras中構建******rnn模型
#建立******rnn模型
訓練模型並輸出測試資料集的分類精度
基於Tensorflow的Keras安裝
平台 ubuntu14.04 版本 python3.5,anaconda3 4.1.1,tensorflow1.4.0 bash anaconda sh 檔名 步驟2 回到剛開啟命令框時的目錄,依此輸入 mkdir pip cd pip vim pipconfig 然後會彈出一些配置 拉到最下面,點...
基於tensorflow實現線性回歸
1.1 回歸分析 回歸分析是一種 性的建模技術,它研究的是因變數 目標 和自變數 器 之間的關係。這種技術通常用於 分析,時間序列模型以及發現變數之間的因果關係。通常使用曲線 線來擬合資料點,目標是使曲線到資料點的距離差異最小 1.2 線性回歸 在統計學中,線性回歸 linear regressio...
基於TensorFlow的MNIST資料集的實驗
一 mnist實驗內容 如下所示 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input data import matplotlib.pyplot as plt import numpy as np...