Ich habe zwei Numpy-Arrays:
Ich möchte diese in TensorFlow laden, damit ich sie mit einem neuronalen Netzwerk klassifizieren kann. Wie kann das gemacht werden?
Welche Form müssen die Numpy-Arrays haben?
Zusätzliche Informationen - Meine Bilder sind jeweils 60 (Höhe) mal 160 (Breite) Pixel groß und haben jeweils 5 alphanumerische Zeichen. Hier ist ein Beispielbild:
Jede Beschriftung ist ein 5 x 62 Array.
Sie können "tf.convert_to_tensor()" verwenden:
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()
Hier's ein Link zur Dokumentation dieser Methode:
https://www.tensorflow.org/api_docs/python/tf/convert_to_tensor
Sie können die tf.pack (tf.stack in TensorFlow 1.0.0) Methode für diesen Zweck verwenden. Hier ist, wie man ein zufälliges Bild vom Typ numpy.ndarray
in einen Tensor
packt:
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: um ein Python-Objekt in einen Tensor zu konvertieren, können Sie die Funktion tf.convert_to_tensor verwenden.
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 können zwei Platzhalter deklarieren:
X = tf.placeholder("float")
Y = tf.placeholder("float")
Dann verwenden Sie diese Platzhalter (X und Y) in Ihrem Modell, Ihren Kosten usw: model = tf.mul(X, w) ... Y ... ...
Wenn Sie schließlich das Modell/die Kosten ausführen, füttern Sie die Numpy-Arrays mit feed_dict:
with tf.Session() as sess:
....
sess.run(model, feed_dict={X: trY, Y: trY})