У меня есть простая программа на Python, например
from collections import defaultdict
import math
x = ["a", "b", "a", "c", "d"]
y = [0.1, 0.2, 0.3, 0.4, 0.5]
z = defaultdict(float)
for i in range(len(x)):
z[x[i]] += y[i]
result = [math.log(z[c]+1) for c in z]
Я хочу переписать код на tensorflow, но понятия не имею, как это сделать. Пожалуйста, помогите!
-1
user3162587
23 Апр 2020 в 13:02
1 ответ
Я думаю, вы можете сделать это в tensorflow 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))
Выходы
[b'a' b'b' b'c' b'd']
[0.4 0.2 0.4 0.5]
[0.3364722 0.1823216 0.3364722 0.4054651]
0
Kyle
23 Апр 2020 в 14:39
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.