tensorflow
RNN, LSTM और द्विदिश RNN / LSTM को TensorFlow के साथ बनाना
खोज…
एक द्विदिश LSTM बनाना
import tensorflow as tf
dims, layers = 32, 2
# Creating the forward and backwards cells
lstm_fw_cell = tf.nn.rnn_cell.BasicLSTMCell(dims, forget_bias=1.0)
lstm_bw_cell = tf.nn.rnn_cell.BasicLSTMCell(dims, forget_bias=1.0)
# Pass lstm_fw_cell / lstm_bw_cell directly to tf.nn.bidrectional_rnn
# if only a single layer is needed
lstm_fw_multicell = tf.nn.rnn_cell.MultiRNNCell([lstm_fw_cell]*layers)
lstm_bw_multicell = tf.nn.rnn_cell.MultiRNNCell([lstm_bw_cell]*layers)
# tf.nn.bidirectional_rnn takes a list of tensors with shape
# [batch_size x cell_fw.state_size], so separate the input into discrete
# timesteps.
_X = tf.unpack(state_below, axis=1)
# state_fw and state_bw are the final states of the forwards/backwards LSTM, respectively
outputs, state_fw, state_bw = tf.nn.bidirectional_rnn(lstm_fw_multicell, lstm_bw_multicell, _X, dtype='float32')
पैरामीटर
-
state_below
निम्न आयामों वाला एक 3D टेंसर है: [batch_size
, अधिकतम अनुक्रम सूचकांक,dims
]। यह पिछले ऑपरेशन से आता है, जैसे शब्द को एम्बेड करना। -
dims
छिपा इकाइयों की संख्या है। - एक खड़ी LSTM नेटवर्क बनाने के लिए
layers
को 1 से ऊपर समायोजित किया जा सकता है।
टिप्पणियाँ
-
tf.unpack
किसी दिए गए अक्ष के आकार को निर्धारित करने में सक्षम नहीं हो सकता है (यदि यह मामला है तोnums
तर्क का उपयोग करें)। - यह LSTM (जैसे
tf.matmul(state_below, U) + b
नीचे एक अतिरिक्त वजन + पूर्वाग्रह गुणन जोड़ने में मददगार हो सकता है।
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow