У меня есть вопрос относительно функции отображения tf.
Я сталкиваюсь со странным поведением с этой функцией. Если я сделаю, как указано в руководстве
label_tensor # shape [150, 1]
y = tf.map_fun(lambda x: x*x, label_tensor)
# returns y as a tensor with label_tensor x^2
однако, если я хочу реализовать свою собственную функцию, она, похоже, не работает. Он просто всегда передает тензор в указанную функцию, которая не предназначена для работы с тензорами.
y = tf.map_fn(special_fun, label_tensor)
def special_fun(key):
return int(2000 * round(float(key)/2000))
# TypeError: float() argument must be a string or a number, not 'Tensor'
Я как-то не вижу проблемы здесь.
Также, если я попробую что-то вроде:
tmp_label_list = tf.Session (). run (label_tensor)
печать (tmp_label_list)
# распечатывает оцененный список, [1, 2, 3, 3, 1, 2, 2, ...]
Но если я затем передам [special_fun(i) for i in tmp_label_list]
, то снова возникнет ошибка типа, что ожидалось, что нет 'Tensor'
Что я пропускаю или делаю неправильно? Заранее спасибо.