Как я могу получить tf.data.Dataset.from_tensor_slices для принятия моего dtype? - PullRequest
1 голос
/ 02 апреля 2020
# Convert to Tensor
imagepaths = tf.convert_to_tensor(imagepaths, dtype=tf.string)
labels = tf.convert_to_tensor(labels, dtype=tf.int32)
# Build a TF Queue, shuffle data
image, label = tf.data.Dataset.from_tensor_slices([imagepaths, labels])

Таким образом, следующий код - это то, что я использую с Tensorflow 2, я продолжаю изменять свои типы, в которые я конвертирую, однако это постоянно дает мне ошибки независимо от того, какой я использую. Любые идеи? Ниже я перечислил некоторые ошибки, которые я получаю:

tensorflow.python.framework.errors_impl.InvalidArgumentError: cannot compute Pack as input #1(zero-based) was expected to be a string tensor but is a int32 tensor [Op:Pack] name: component_0


return ops.EagerTensor(value, handle, device, dtype)
TypeError: Cannot convert provided value to EagerTensor

1 Ответ

0 голосов
/ 02 апреля 2020

Вы можете объединить два тензора в один объект набора данных, нарезав кортеж из двух тензоров. Например:

# Convert to Tensor
imagepaths = tf.convert_to_tensor(imagepaths, dtype=tf.string)
labels = tf.convert_to_tensor(labels, dtype=tf.int32)
# Build a TF Queue, shuffle data
dataset = tf.data.Dataset.from_tensor_slices((imagepaths, labels))

Обратите внимание, что тензоры должны иметь одинаковый размер в своем первом измерении.

...