Я пытаюсь преобразовать данные векторов объектов HOG (гистограмма ориентированных градиентов) в tf.train.feature, чтобы я мог создать набор данных изображений, которые были преобразованы с помощью HOG.
HOGВектор выходного объекта состоит из массива чисел с плавающей точкой32.
Я могу вычислить и создать пустой массив, содержащий выходные векторы объектов, однако, если я сделаю этот код:
hist = hog.compute(img, padding=(4, 4))
histNP = np.array(hist).reshape(len(hist)) #to flatten the array
serializedExample = serializeExample(tf.io.serialize_tensor(histNP), labels[counter])
и затем ввод, который сериализованная переменная «histNP» проходит через это:
tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))
Я получаю ошибку, подобную этой:
TypeError: tf.Tensor: id = 1,shape = (), dtype = string, numpy = b '\ x08 \ x01 \ x12 \ n \ x12 \ x04 \ x08 \ xc4 \ xb9 \ x04 \ x12 \ x02 \ x08 имеет тип tenorflow.python.framework.ops.EagerTensor, но ожидается один из: байтов
В документации по тензорному потоку говорится, что самый простой способ преобразовать нескалярные входные данные - использовать tf.io.serialize_tensor.
Есть ли что-тоЯ делаю не так? или есть ли альтернатива в преобразовании массива numpy в tf.train.example, который я могу использовать для создания tfrecord?