整理自: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的輸入輸出關係 上標,指的是輸入序列時刻。其...