У меня есть функция карты ниже (исполняемый пример), которая вводит string
и выводит string
и integer
.
в tf.data.Dataset.from_tensor_slices
я назвал исходный ввод 'filenames'
. Но когда я возвращаю значения из функции карты map_element_counts
, я могу вернуть только кортеж (возврат словаря генерирует исключение).
Есть ли способ назвать 2 элемента, возвращаемые моей функцией map_element_counts
?
import tensorflow as tf
filelist = ['fileA_6', 'fileB_10', 'fileC_7']
def map_element_counts(fname):
# perform operations outside of tensorflow
return 'test', 10
ds = tf.data.Dataset.from_tensor_slices({'filenames': filelist})
ds = ds.map(map_func=lambda x: tf.py_func(
func=map_element_counts, inp=[x['filenames']], Tout=[tf.string, tf.int64]
))
element = ds.make_one_shot_iterator().get_next()
with tf.Session() as sess:
print(sess.run(element))
Результат:
(b'test', 10)
Желаемый результат:
{'elementA': b'test', 'elementB': 10)
Добавлено:
Когда я делаю return {'elementA': 'test', 'elementB': 10}
, я получаю это исключение:
tensorflow.python.framework.errors_impl.UnimplementedError: Unsupported object type dict