Я думаю, вы можете сделать это следующим образом в tenorflow 1.8
import tensorflow as tf
x = tf.constant(["a", "b", "a", "c", "d"])
y = tf.constant([0.1, 0.2, 0.3, 0.4, 0.5])
u, segment_ids, counts = tf.unique_with_counts(x)
t = tf.unsorted_segment_sum(y, segment_ids, tf.shape(u)[0])
r = tf.log(t + 1)
s = tf.Session()
print(s.run(u))
print(s.run(t))
print(s.run(r))
output
[b'a' b'b' b'c' b'd']
[0.4 0.2 0.4 0.5]
[0.3364722 0.1823216 0.3364722 0.4054651]