Как я могу преобразовать нескалярный тип данных (то есть массив с плавающей точкой) в tf.train.feature? - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь преобразовать данные векторов объектов 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...