簡體   English   中英

如何將 numpy 數組轉換為標准的 TensorFlow 格式?

[英]How to convert numpy arrays to standard TensorFlow format?

我有兩個 numpy 數組:

  • 一個包含驗證碼圖像
  • 另一個包含相應標簽(單熱矢量格式)

我想將這些加載到 TensorFlow 中,以便我可以使用神經網絡對它們進行分類。 如何做到這一點?

numpy 數組需要什么形狀?

附加信息 - 我的圖像是 60(高)乘 160(寬)像素,每個都有 5 個字母數字字符。 這是一個示例圖像:

示例圖像。

每個標簽都是一個 5 x 62 的數組。

您可以使用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()

這是此方法文檔的鏈接:

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

為此,您可以使用tf.pack (TensorFlow 1.0.0 中的tf.stack )方法。 以下是如何將numpy.ndarray類型的隨機圖像numpy.ndarrayTensor

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

更新:要將 Python 對象轉換為張量,您可以使用tf.convert_to_tensor函數。

您可以使用占位符和 feed_dict。

假設我們有這樣的 numpy 數組:

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

您可以聲明兩個占位符:

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

然后,在您的模型、成本等中使用這些占位符(X 和 Y):model = tf.mul(X, w) ... Y ... ...

最后,當您運行模型/成本時,使用 feed_dict 提供 numpy 數組:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM