Я использую tf.losses.cosine_distance(Y, outputs, axis=2, reduction=tf.losses.Reduction.MEAN)
для измерения разницы между моими ярлыками и прогнозами. Тензорная форма [batch_size, sequence_length, embedding]
. В моем случае форма прогноза составляет [16311, 20, 100]
.
Мой результат следующий.
----------------------epoch1----------------------
train 1 loss 1.1429076
----------------------epoch2----------------------
train 2 loss 0.51511204
----------------------epoch3----------------------
train 3 loss -2.5750072
----------------------epoch4----------------------
train 4 loss -6.685198
----------------------epoch5----------------------
train 5 loss -10.863398
Граница косинусного сходства равна [0,1]
. Но в моем случае он больше 1 в начале и стал отрицательным после нескольких эпох. Интересно, почему это могло произойти.
Мое вложение содержит отрицательные числа. Должен ли я нормализовать его до расчета косинусного расстояния?