Каким будет лучший способ хранить разреженный вектор для TFRecord? Мой разреженный вектор содержит только те и нули, поэтому я решил, что просто сохраню индексы, где "те" расположены так:
example = tf.train.Example(
features=tf.train.Features(
feature={
'label': self._int64_feature(label),
'features' : self._int64_feature_list(values)
}
)
)
Здесь values
- список, содержащий индексы 'ones'. Этот массив values
иногда содержит сотни элементов, а иногда и вовсе. После этого я просто сохраняю сериализованный пример в tfrecord. Позже я читаю tfrecord следующим образом:
features = tf.parse_single_example(
serialized_example,
features={
# We know the length of both fields. If not the
# tf.VarLenFeature could be used
'label': tf.FixedLenFeature([], dtype=tf.int64),
'features': tf.VarLenFeature(dtype=tf.int64)
}
)
label = features['label']
values = features['features']
Это не работает, потому что массив values
распознается как разреженный массив, и я не получаю данные, которые я сохранил. Каков наилучший способ хранения разреженного тензора в tfrecords и как его читать?