시퀀스의 실제 길이가 주어지면 Mean 연산을 수행하려고합니다. (마스킹 제로 벡터)TensorFlow 동적 길이 평균화
내 입력 sequence_outpus
은 (BATCH_SIZE, MAX_LEN, 크기) I 일괄 각 시퀀스의 실제 길이를 저장하는 텐서를
의이다.
lengths = length(sequence_outputs)
lengths = tf.cast(length, tf.float32)
lengths = tf.expand_dims(lengths,1)
sentence_outputs = tf.reduce_sum(sentence_outputs,1)/lengths
그래프 컴파일을하지만이 NaN 손실 값을 얻고있다 : 나는 이렇게
def length(sequence):
used = tf.sign(tf.reduce_max(tf.abs(sequence), reduction_indices=2))
length = tf.reduce_sum(used, reduction_indices=1)
length = tf.cast(length, tf.int64)
return length
https://danijar.com/variable-sequence-lengths-in-tensorflow/에서 기능을 사용했다. 또한 eval()로 디버깅 할 때 내 길이가 음수 값이됩니다.
이것은 간단한 문제인 것처럼 보이지만 언젠가는 이것으로 붙어있어 도움이됩니다.
감사합니다.