환경 정보생성 NaN의 그라데이션
운영 체제 컴퓨팅 : CUDA의 0.10.0rc0
설치된 버전 : 레드햇 엔터프라이즈 리눅스 서버가
Tensorflow 버전 6.6 출시 및 cuDNN : /usr/local/cuda/lib64/libcudart.so.7.5.23
나는 임시 관심 전략 (https://arxiv.org/abs/1608.02927)으로 모델을 실행 중입니다. 나는 손실을 계산하기 위해 tf.nn.seq2seq.sequence_loss_by_example()
을 사용하고 손실을 최소화하기 위해 adam gradient (lr : 0.001)를 사용합니다. 손실은 NaN이 아니지만 일부 가중치의 그라데이션은 NaN 값이되었습니다. 바닐라주의 전략을 사용하면이 NaN 문제가 발생하지 않습니다.
그라디언트가 NaN이 될 때까지 모든 하이퍼 매개 변수를 인쇄해도 그 값은 실제 값입니다.
누군가이 문제를 해결할 수 있도록 도와주세요. 미리 감사드립니다.
부분 코드
attn_vec = tf.reduce_sum(attention_states * y, [2]) # initial attention weights
if step > 0:
history = tf.pack(acc_sum)
max_hist = tf.reduce_max(attn_vec, 1, keep_dims=True)
cur_scores = tf.exp(attn_vec - max_hist)/tf.reduce_sum(tf.exp((history-max_hist)), 0) # reweight attention weights
else:
cur_scores = tf.exp(attn_vec - tf.reduce_max(attn_vec, 1, keep_dims=True))
m = cur_scores/tf.reduce_sum(cur_scores, 1, keep_dims=True)
acc_sum.append(attn_vec)
을 무게? 어떤 코드를 제공 할 수 있다면 도움이 될 것입니다. – martianwars
어쩌면 학습 속도가 더 빨라지겠습니까? –
xavier initializer를 사용했으며 학습 속도가 낮아 도움이되지 않았습니다. – Zodiac