2016-04-28 22 views
17

Ho due array NumPyCome convertire gli array di numpy in formato standard TensorFlow?

  • uno che contiene immagini captcha e
  • un'altra che contiene le etichette corrispondenti (in un caldo formato vettoriale)

voglio caricare in tensorflow quindi posso classificarli usando una rete neurale. Come si può fare ?

Che forma devono avere gli array di numpy?

Informazioni aggiuntive - Mie immagini sono 60 (altezza) 160 (larghezza) pixel ciascuno e ciascuno di essi hanno 5 caratteri alfanumerici

Here is a sample image. Ogni etichetta è un 5 da 62 array.

+0

controllare anche gli esempi MNIST, https://www.tensorflow.org/versions/r0.8/tutorials/mnist/beginners/index.html –

risposta

5

È possibile utilizzare segnaposto e feed_dict.

Supponiamo di avere array NumPy come questi:

trX = np.linspace(-1, 1, 101) 
trY = 2 * trX + np.random.randn(*trX.shape) * 0.33 

È possibile dichiarare due segnaposto:

X = tf.placeholder("float") 
Y = tf.placeholder("float") 

Quindi, utilizzare questi segnaposto (X e Y) nel modello, costi, ecc .: model = tf.mul (X, w) ... Y ... ...

Infine, quando si esegue il modello/costo, nutrire gli array NumPy utilizzando feed_dict:

with tf.Session() as sess: 
.... 
    sess.run(model, feed_dict={X: trY, Y: trY}) 
+0

fa questo metodo mi consente di utilizzare le funzioni di flusso del tensore integrate come il prossimo lotto? –

+0

@KeshavChoudhary gruppo successivo in MNIST? Certo, ma è necessario modificare un bit per il set di dati. –

+0

Voglio creare un set di dati come MNIST ma con le mie immagini, sono un principiante di TensorFlow e delle reti neurali. Qual è il modo più semplice per creare un set di dati come MNIST in modo da poter seguire il tutorial di base? –

7

È possibile utilizzare tf.pack (tf.stack in tensorflow 1.0.0) Metodo per questo scopo. Ecco come imballare un'immagine casuale di tipo numpy.ndarray in un Tensor:

import numpy as np 
import tensorflow as tf 
random_image = np.random.randint(0,256, (300,400,3)) 
random_image_tensor = tf.pack(random_image) 
tf.InteractiveSession() 
evaluated_tensor = random_image_tensor.eval() 

UPDATE: per convertire un oggetto Python per un tensore è possibile utilizzare la funzione tf.convert_to_tensor.

+2

non c'è tf.pack – Chaine

+1

Nella parate destra aftet 'tf.pack' ho menzionato che dovresti usare' tf.stack' nelle versioni più recenti se TensorFlow! – Ali

+0

Giusto .. ok grazie! – Chaine

11

È possibile utilizzare tf.convert_to_tensor():

import tensorflow as tf 
import numpy as np 

data = [[1,2,3],[4,5,6]] 
data_np = np.asarray(data, np.float32) 

data_tf = tf.convert_to_tensor(data_np, np.float32) 

sess = tf.InteractiveSession() 
print(data_tf.eval()) 

sess.close()