web-dev-qa-db-ja.com

numpy配列を標準のTensorFlow形式に変換する方法は?

私は2つのnumpy配列を持っています:

  • キャプチャ画像を含むもの
  • 対応するラベルを含む別のもの(ワンホットベクトル形式)

これらをTensorFlowにロードして、ニューラルネットワークを使用して分類できるようにします。これを行うにはどうすればよいですか?

Numpy配列にはどのような形状が必要ですか?

追加情報-私の画像は60(高さ)x 160(幅)ピクセルで、それぞれ5文字の英数字です。サンプル画像は次のとおりです。

sample image.

各ラベルは5 x 62の配列です。

23

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

この目的のために tf.pack (TensorFlow 1.0.0では- tf.stack )メソッドを使用できます。タイプnumpy.ndarrayのランダムイメージを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()

更新:PythonオブジェクトをTensorに変換するには、 tf.convert_to_tensor 関数を使用できます。

7
Ali

プレースホルダーとfeed_dictを使用できます。

これらのようなnumpy配列があるとします:

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

次の2つのプレースホルダーを宣言できます。

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})
5
Sung Kim