저는 언어 모델에 TensorFlow LSTM을 사용하고 있습니다. (나는 일련의 단어를 가지고 있고 다음 단어를 예측하고 싶습니다.) 그리고 언어 모델을 실행하면서 잊어 버린 값을 출력하고 싶습니다. 입력, 변환 및 각 단계에서 출력 게이트. 어떻게해야합니까? https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/rnn/python/ops/rnn_cell.py의 코드를 검사에서 TensorFlow에서 LSTM 게이트의 값을 출력하는 방법은 무엇입니까?
, 나는LayerNormBasicLSTMCell
클래스가 나는 인쇄 할
i, j, f, o
변수를 포함하는
call
방법을 가지고 참조하십시오.
def call(self, inputs, state):
"""LSTM cell with layer normalization and recurrent dropout."""
c, h = state
args = array_ops.concat([inputs, h], 1)
concat = self._linear(args)
i, j, f, o = array_ops.split(value=concat, num_or_size_splits=4, axis=1)
if self._layer_norm:
i = self._norm(i, "input")
j = self._norm(j, "transform")
f = self._norm(f, "forget")
o = self._norm(o, "output")
g = self._activation(j)
if (not isinstance(self._keep_prob, float)) or self._keep_prob < 1:
g = nn_ops.dropout(g, self._keep_prob, seed=self._seed)
new_c = (c * math_ops.sigmoid(f + self._forget_bias)
+ math_ops.sigmoid(i) * g)
if self._layer_norm:
new_c = self._norm(new_c, "state")
new_h = self._activation(new_c) * math_ops.sigmoid(o)
new_state = core_rnn_cell.LSTMStateTuple(new_c, new_h)
return new_h, new_state
그러나 이러한 변수를 쉽게 인쇄 할 수 있습니까? 아니면 기본적으로 LTSM을 실행중인 스크립트에서이 방법으로 관련 코드 줄을 다시 만들어야합니까?
당신은이 작업을 수행 할 수 있었습니까? 나는 또한 모든 LSTM 셀 게이트를 기록 할 필요가있다. 그러나 나는 너무 많은 것들을 부수는 호출의 결과를 바꾼다. 당신이 한 일의 모범이 있습니까? – dsalaj