Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

437
Visualizações
¿Hay alguna manera de apilar dos conjuntos de datos de tensorflow?

Quiero apilar dos objetos de conjuntos de datos en Tensorflow (función rbind en R). Creé un conjunto de datos A a partir de archivos tfRecord y un conjunto de datos B a partir de matrices numpy. Ambos tienen las mismas variables. ¿Sabes si hay alguna manera de apilar estos dos conjuntos de datos para crear uno más grande? ¿O para crear un iterador que leerá aleatoriamente datos de estas dos fuentes?

Gracias

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

El método tf.data.Dataset.concatenate() es el análogo más cercano a tf.stack() cuando se trabaja con conjuntos de datos. Si tiene dos conjuntos de datos con la misma estructura (es decir, los mismos tipos para cada componente, pero posiblemente formas diferentes):

 dataset_1 = tf.data.Dataset.range(10, 20) dataset_2 = tf.data.Dataset.range(60, 70)

entonces puedes concatenarlos de la siguiente manera:

 combined_dataset = dataset_1.concatenate(dataset_2)
over 4 years ago · Santiago Trujillo Relatório

0

Si al apilar quiere decir lo que hacen tf.stack() y np.stack() :

Apila una lista de tensores de rango R en un tensor de rango (R+1) .

https://www.tensorflow.org/api_docs/python/tf/stack

Únete a una secuencia de matrices a lo largo de un nuevo eje.

https://docs.scipy.org/doc/numpy/reference/generated/numpy.stack.html

entonces creo que lo más cercano que puede venir con un tf.data.Dataset es Dataset.zip() :

 @staticmethod zip(datasets)

Crea un conjunto de Dataset al comprimir los conjuntos de datos dados.

https://www.tensorflow.org/api_docs/python/tf/data/Dataset?version=stable#zip

Esto le permite iterar a través de múltiples conjuntos de datos al mismo tiempo al iterar sobre la dimensión compartida de los conjuntos de datos originales, de manera similar a un tensor o matriz stack() ed.

Luego, también puede usar .map(tf.stack) o .map(lambda *t: tf.stack(t, axis=-1)) para apilar los tensores a lo largo de nuevas dimensiones en la parte delantera o trasera, respectivamente,

Si realmente desea lograr lo que tf.concat() y np.concatenate() , entonces use Dataset.concatenate() .

over 4 years ago · Santiago Trujillo Relatório

0

Suponga que tiene dos conjuntos de datos cuya forma de elemento es respectivamente (bs, d0, d1) y (bs, d0', d1) y desea un nuevo conjunto de datos cuya forma de elemento es (bs, d0 + d0', d1) puede hacerlo usando tf.Dataset.zip y luego concatenando cada elemento en el segundo eje, como en el siguiente ejemplo:

 import tensorflow as tf a = tf.zeros((100,4,8)) b = tf.ones((100,1,8)) d1 = tf.data.Dataset.from_tensor_slices(a) d1 = d1.batch(16,drop_remainder=True) # elements shape (16,4,8) d2 = tf.data.Dataset.from_tensor_slices(b) d2 = d2.batch(16,drop_remainder=True) # elements shape (16,1,8) d = tf.data.Dataset.zip((d1,d2)) d = d.map(lambda x,y:tf.concat([x,y],axis=-2)) # elements shape (16,4+1,8) it = iter(d) x = next(it) print(x.shape) print(x)

Si, en cambio, desea apilar dos conjuntos de datos con la misma forma de elementos (bs, d0, d1) en un nuevo conjunto de datos con forma de elementos (bs, d0, d1,2), puede hacerlo comprimiendo los dos conjuntos de datos y luego replanteando los elementos.

 import tensorflow as tf a = tf.zeros((100,4,8)) b = tf.ones((100,4,8)) d1 = tf.data.Dataset.from_tensor_slices(a) d1 = d1.batch(16,drop_remainder=True) # elements shape (16,4,8) d2 = tf.data.Dataset.from_tensor_slices(b) d2 = d2.batch(16,drop_remainder=True) # elements shape (16,4,8) d = tf.data.Dataset.zip((d1,d2)) d = d.map(lambda x,y:tf.stack([x,y],axis=-1)) # elements shape (16,4,8,2) it = iter(d) x = next(it) print(x.shape) print(x)
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda