in recommended-item-search/softmax_model.py [0:0]
def softmax_loss(user_embeddings, movie_embeddings, labels):
"""Calculate loss with sampled movie id."""
user_embedding_size = user_embeddings.shape[1].value
movie_embedding_size = movie_embeddings.shape[1].value
if user_embedding_size != movie_embedding_size:
raise ValueError(
"The user embedding dimension %d should match the movie embedding "
"dimension % d" % (user_embedding_size, movie_embedding_size))
logits = tf.matmul(user_embeddings, movie_embeddings, transpose_b=True)
loss = tf.losses.sparse_softmax_cross_entropy(labels, logits)
return loss