Bunu bir sınıfta kullandık ve profesörümüz, doğru şekli olanları geçebildiğimizi söyledi (yorum, "1D yığın boyutlu yüzer-Tensörler listesi ile aynı uzunluktaki") diyor. Bu, ne anlama geldiği konusunda yardımcı olmaz, ama belki de kodunuzu çalıştırmanıza yardımcı olur. Benim için çalıştı.
Bu kod aşağıdakileri yapmalıdır: [tf.ones(batch_size, tf.float32) for _ in logits]
.
Düzenleme: TF kodundan:
for logit, target, weight in zip(logits, targets, weights):
if softmax_loss_function is None:
# TODO(irving,ebrevdo): This reshape is needed because
# sequence_loss_by_example is called with scalars sometimes, which
# violates our general scalar strictness policy.
target = array_ops.reshape(target, [-1])
crossent = nn_ops.sparse_softmax_cross_entropy_with_logits(
logit, target)
else:
crossent = softmax_loss_function(logit, target)
log_perp_list.append(crossent * weight)
o logit için kaybı ile çarpılır geçirilir ağırlıkları. Öyleyse, sanırım fazladan bir tahminde bulunmak istiyorsanız, ağırlığı 1'in üzerinde artırabilirsiniz.
Biraz yardımcı oluyor, ancak ağırlık parametresinin amacının ne olduğunu daha fazla anlamaya çalışıyorum, bir RNN'nin kayıp fonksiyonunda ağırlıklar hakkında pek fazla tartışma bulamıyorum, çünkü çıkıştan bahsediyoruz katmanı. Uzunluğun ne anlama geldiğine dair uygun şekil sorusunun cevabını biliyor musunuz? – TheM00s3
Sanırım koddaki yorumdan bahsediyorsunuz? 'ağırlıklar: 1D parti büyüklüğünde float-Tensors listesi ile aynı uzunlukta. 'Bu yorum ile ilgili sorunuz mu var? –
bu olurdu. – TheM00s3