Функция parse_single_example
Функция parse_single_example выполняет разбор одного сериализованного примера
в формате tf.Example. Первым параметром функция принимает сериализованную строку
или скалярный тензор строки. Вторым параметром передается словарь признаков,
описывающий схему разбора. Функция возвращает словарь, в котором ключами
являются имена признаков, а значениями - соответствующие тензоры.
Синтаксис
tf.io.parse_single_example(serialized, features)
Пример
Давайте создадим сериализованный пример с двумя признаками и выполним его разбор:
import tensorflow as tf
example = tf.train.Example(features=tf.train.Features(feature={
'name': tf.train.Feature(bytes_list=tf.train.BytesList(value=[b'abcde'])),
'value': tf.train.Feature(float_list=tf.train.FloatList(value=[1.0, 2.0, 3.0]))
}))
serialized = example.SerializeToString()
features = {
'name': tf.io.FixedLenFeature([], tf.string),
'value': tf.io.FixedLenFeature([3], tf.float32)
}
res = tf.io.parse_single_example(serialized, features)
print(res)
Результат выполнения кода:
{'name': <tf.Tensor: shape=(), dtype=string, numpy=b'abcde'>, 'value': <tf.Tensor: shape=(3,), dtype=float32, numpy=array([1., 2., 3.], dtype=float32)>}
Пример
Давайте разберем пример с целочисленным признаком и выведем отдельные тензоры:
import tensorflow as tf
example = tf.train.Example(features=tf.train.Features(feature={
'id': tf.train.Feature(int64_list=tf.train.Int64List(value=[10, 20, 30]))
}))
serialized = example.SerializeToString()
features = {
'id': tf.io.FixedLenFeature([3], tf.int64)
}
res = tf.io.parse_single_example(serialized, features)
print(res['id'])
Результат выполнения кода:
tf.Tensor([10 20 30], shape=(3,), dtype=int64)
Смотрите также
-
функцию
parse_example,
которая разбирает пакет сериализованных примеров -
функцию
parse_sequence_example,
которая разбирает последовательный пример -
функцию
FixedLenFeature,
которая описывает признак фиксированной длины -
функцию
VarLenFeature,
которая описывает признак переменной длины