Пакетные элементы в наборе данных Tensorflow, которые содержат переменное первое измерение, но постоянное второе измеренPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Пакетные элементы в наборе данных Tensorflow, которые содержат переменное первое измерение, но постоянное второе измерен

Сообщение Anonymous »

У меня есть набор данных Tensorflow, который содержит тензоры ранга 2. Каждый тензор был прочитан из файла и имеет различное первое измерение и постоянное второе измерение. Например, форма каждого предмета может быть следующей:

Код: Выделить всё

(123, 3)
(100, 3)
(134, 3)
...
Чтобы имитировать подобное поведение, вы можете использовать следующее:

Код: Выделить всё

lengths = tf.random.uniform(shape=(10,), minval=5, maxval=10, dtype=tf.int32)
# this would be a dataset of filenames in my code
dataset = tf.data.Dataset.from_tensor_slices(lengths)

def fake_read_file(tensor):
# this function would read and preprocess data from file in my code
# however, for demonstration purposes it just returns a dummy data with varying length in the first dimension
dummy_data = tf.convert_to_tensor([[0.2, 0.2, 0.2]])
return tf.repeat(dummy_data, tensor, axis=0)

# I use tf.py_function decorator because file read can be done only in eager mode
dataset = dataset.map(lambda x: tf.py_function(fake_read_file, inp=[x], Tout=tf.float32))
Мне нужно пакетировать этот набор данных с помощью RaggedTensors (я не хочу дополнять входные данные). Размеры каждого пакета должны быть (batch_size, None, 3).
Сейчас я придумал следующее решение:

Код: Выделить всё

dataset = dataset.map(lambda x: tf.RaggedTensor.from_tensor(x))
dataset = dataset.batch(batch_size=2, drop_remainder=True)
Однако, когда я перебираю набор данных, я получаю пакеты формы (batch_size, None, None), т. е. последнее измерение тоже становится неровным.

Подробнее здесь: https://stackoverflow.com/questions/789 ... n-but-cons
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»