使用tflearn 構建RNN

2021-08-15 12:26:35 字數 1301 閱讀 6167

# -*- coding:utf-8 -*-

'''created on 2018-1-19

'''import numpy as np

import tflearn

import tflearn.datasets.mnist as mnist

x, y, testx, testy = mnist.load_data(one_hot=true)

defdo_rnn

(x, y, testx, testy):

# 這裡需要將(1,784)轉變為(28*28),因為lstm需要的輸入是時序的,這裡可以28*28可以看做28行*28列,然後每次計算是一行*28列進行計算,每一行的計算結果

# 都會參與下一行的計算,和mlp,cnn不同

x = np.reshape(x, (-1, 28, 28))

testx = np.reshape(testx, (-1, 28, 28))

# 定義輸入層

net = tflearn.input_data(shape=[none, 28, 28])

# 新增lstm結構,如果後面跟著lstm,那麼需要return_seq=true,輸出3-d tensor [samples, timesteps, output dim]

net = tflearn.lstm(net, 128, return_seq=true)

# 新增lstm結構,輸出2-d tensor [samples, output dim]

net = tflearn.lstm(net, 128)

# 新增一層全連線,加softmax分類器

net = tflearn.fully_connected(net, 10, activation='softmax')

# 定義回歸策略,引數優化器採用adam

net = tflearn.regression(net, optimizer='adam',

loss='categorical_crossentropy', name="output1")

# 生成模型

model = tflearn.dnn(net, tensorboard_verbose=2)

# 訓練模型

model.fit(x, y, n_epoch=1, validation_set=(testx,testy), show_metric=true,

snapshot_step=100)

do_rnn(x, y, testx, testy)

用tensorflow構建動態RNN

直接看 def create cell cell rnn.lstmcell num units rnn cell rnn.multirnncell create cell for in range 2 output,states tf.nn.dynamic rnn rnn cell,x,dtype ...

使用torch實現RNN

本文對的結果進行了復現。在實驗室的專案遇到了困難,弄不明白lstm的原理。到網上搜尋,發現lstm是rnn的變種,那就從rnn開始學吧。帶隱藏狀態的rnn可以用下面兩個公式來表示 可以看出,乙個rnn的引數有w xh,w hh,b h,w hq,b q和h t 其中h t 是步數的函式。參考的文章考...

使用Keras進行深度學習 RNN

rnn 迴圈神經網路,在這裡主要將它用在處理與 序列資料方面.1.rnn網路結構與原理詳解 該圖的左邊是未展開的rnn模型,展開後的rnn模型在右邊詳細的進行了展示.rnn網路的最為重要的一點就是其具有時序性,該時序性在網路的具體的體現就是hi的一系列引數的設定,這些引數的含義就是在i時刻 對應時刻...