2016-04-28 11 views
17

Ich habe zwei numpy ArraysWie werden numpy Arrays in das Standard TensorFlow Format konvertiert?

  • eine, die captcha Bilder enthält und
  • einem anderen, die die entsprechenden Etiketten (in One-Hot-Vektor-Format) enthält

I diese in TensorFlow zu ladende also kann ich sie mit einem neuronalen Netzwerk klassifizieren. Wie kann das gemacht werden?

Welche Form müssen die numpy Arrays haben?

Zusätzliche Informationen - My Bilder sind 60 (Höhe) von 160 (Breite) jeder und jede von ihnen Pixel 5 alphanumerische Zeichen haben

Here is a sample image. Jedes Etikett ist ein 5 um 62-Array.

+0

auch die MNIST Beispiele überprüfen, https://www.tensorflow.org/versions/r0.8/tutorials/mnist/beginners/index.html –

Antwort

5

Sie können Platzhalter und feed_dict verwenden.

Angenommen, wir haben numpy Arrays wie diese:

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

Sie zwei Platzhalter erklären können:

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

Verwenden Sie dann diese Platzhalter (X und Y) in Ihrem Modell, Kosten, etc. .: Modell = tf.mul (X, w) ... Y ... ...

Schließlich, wenn Sie das Modell/Kosten führen, die numpy Arrays füttern feed_dict mit:

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

tut dies Methode erlauben Sie mir, die eingebauten Tensor Flow-Funktionen wie nächste Batch zu verwenden? –

+0

@KeshavChoudhary nächste Charge in MNIST? Sicher, aber Sie müssen ein bisschen für Ihr Dataset ändern. –

+0

Ich möchte einen Datensatz wie MNIST erstellen, aber mit meinen eigenen Bildern bin ich ein Anfänger für TensorFlow und neuronale Netze. Was ist der einfachste Weg, um ein Dataset wie MNIST zu erstellen, damit ich dem grundlegenden Tutorial folgen kann? –

7

Sie können zu diesem Zweck tf.pack (tf.stack in TensorFlow 1.0.0) Methode verwenden. Hier ist, wie ein zufälliges Bild des Typs zu packen numpy.ndarray in ein 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: ein Python-Objekt zu einem Tensor konvertieren Sie tf.convert_to_tensor Funktion nutzen zu können.

+2

gibt es kein tf.pack – Chaine

+1

In den Klammern rechts nach 'tf.pack' habe ich erwähnt, dass Sie' tf.stack' in neueren Versionen verwenden sollten, wenn TensorFlow! – Ali

+0

Richtig .. okay, danke! – Chaine

11

Sie tf.convert_to_tensor() verwenden können:

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() 
Verwandte Themen