Tensorflow RNN常用函式

2021-09-13 13:53:14 字數 1770 閱讀 5906

整理自:tensorflow中rnn實現的正確開啟方式:

cell = tf.nn.rnn_cell.basicrnncell(num_units=

128)

print

(cell.state_size)

# 隱藏層的大小:128

inputs = tf.placeholder(np.float32,shape=(32

,100))

# 32為batch_size

h0 = cell.zero_state(

32,np.float32)

#初始狀態為全0

output,h1=cell.call(

input

,h0)

#呼叫call函式

print

(h1.shape)

#(32,128)

lstm_cell = tf.nn.rnn_cell.basiclstmcell(num_units=

128)

inputs = tf.placeholder(np.float32, shape=(32

,100))

# 32 是 batch_size

h0 = lstm_cell.zero_state(

32, np.float32)

# 通過zero_state得到乙個全0的初始狀態

output, h1 = lstm_cell.call(inputs, h0)

#都是(32,128)

inputs = tf.placeholder(tf.float32,

[none

, n_steps, n_inputs]

)basic_cell = tf.contrib.rnn.basicrnncell(num_units=

128)

seq_length = tf.placeholder(tf.int32,

[none])

# 序列長度

outputs, states = tf.nn.dynamic_rnn(basic_cell, inputs, dtype=tf.float32,sequence_length=seq_length)

def

get_a_cell()

:return tf.nn.rnn_cell.basicrnncell(num_units=

128)

cell = tf.nn.rnn_cell.multirnncell(

[get_a_cell(

)for _in range(3

)])# 3層rnn

print

(cell.state_size)

#(128,128,128) # 並不是128x128x128,而是每個隱層狀態大小為128

inputs = tf.placeholder(np.float32, shape=(32

,100))

# 32 是 batch_size

h0 = cell.zero_state(

32, np.float32)

# 通過zero_state得到乙個全0的初始狀態

output, h1 = cell.call(inputs, h0)

print

(h1)

# tuple中含有3個32x128的向量

tensorflow rnn閱讀筆記

只是隨便寫寫,fang bian zi ji ptb word lm.py 1.一些引數的定義 num steps time step 1.在rnn中進行dropout時,對於rnn的部分不進行dropout,也就是說從t 1時候的狀態傳遞到t時刻進行計算時,這個中間不進行memory的dropou...

Tensorflow RNN原始碼理解

一 閱讀原始碼 這個是tensorflow的 rnn原始碼,官方注釋解釋的比較清楚 rnncell是乙個抽象類,我們看下下它的屬性 我們可以發現這裡用到的是python內建的 property 裝飾器,就是負責把乙個方法變成屬性呼叫的,很像c 中的屬性 欄位的那種概念。state size 和out...

tensorflow RNN 學習1,入門

終於,我可以開始寫我的學習記錄了。度過了懵比時期,從啥都不知道,變成知道了一些些,很開心。現在記錄一下,自己寫的乙個簡單的rnn例子,自我總價,加深理解。所以rnn的概念什麼的,建議自己去學習,比如看看吳恩達老師的 深度學習 課程,在網頁雲課堂有的。rnn的輸入輸出關係 上標,指的是輸入序列時刻。其...