Tensorflow TFDV не работает с изображениями
Я пытаюсь заставить TFDV работать с изображениями RGB в качестве входных данных, читая из файла TFRecords. Я могу читать / записывать данные изображения в файлы TFRecord нормально. Вот соответствующие фрагменты кода для записи, где img - пустой массив [32,32,3]:
feature = {'train/label': _int64_feature(y_train[i]),
'train/image': _bytes_feature(tf.compat.as_bytes(img.tostring()))
}
И читаю обратно:
read_features = {'train/label': tf.FixedLenFeature([], tf.int64),
'train/image': tf.FixedLenFeature([], tf.string)}
Затем я могу использовать frombuffer и изменить форму, чтобы вернуть мое изображение правильно.
Проблема в том, что когда я запускаю tfdv.generate_statistics_from_tfrecord(), используя этот файл TFRecords. Выдает ошибку:
ValueError: '\xff ...... \x87' has type str, but isn't valid UTF-8 encoding. Non-UTF-8 strings must be converted to unicode objects before being added. [while running 'GenerateStatistics/RunStatsGenerators/TopKStatsGenerator/TopK_ConvertToSingleFeatureStats']
Я пробовал все виды различных способов написания изображений, используя astype(Unicode) и многое другое, но я не могу заставить это работать.
Есть идеи, пожалуйста?
Спасибо пол
0 ответов
Попробуйте следующее:
image_string = open(image_location, 'rb').read()
feature = {'train/label': _int64_feature(y_train[i]),
'train/image': _bytes_feature(image_string)
}
указано из официального руководства