2017-03-08 11 views
0

現在、私は1つのチャンネルだけで入力テンソルを持っています。私は追加のチャンネルを追加する方法を理解しようとしています。テンソルフローでテンソルを入力するチャネルを追加するにはどうすればよいですか?

例えば、現在の入力8×8チャネル1があると言うことができます -

01, 02,...08, 
09, 10,...16, 
. 
. 
57, 58,...64 

そして、私は8×8の(ゼロで満たされた)2つのチャネルを追加したい -

0, 0,...0, 
0, 0,...0, 
. 
. 
0, 0,...0 

私の現在のコード(サイズ64のリストを受け取り、1つのチャンネルの8×8にリサイズ) -

2つのチャンネルを追加するELS、私はこれにコードを変更しました -

x = tf.placeholder(tf.float32, shape=[None, 64*3]) 
x_image = tf.reshape(x, [-1, 8, 8, 3]) 

input = [1, 2, ...64] #list of 64 items 
#Inserted 2 more items after each item in the input list 
temp = [0*64] 
inputchannel3 = [[]] 
for b1 in input: 
    del temp[:] 
    for b2 in b1: 
     temp += [b2] + [0] + [0] 
    inputchannel3.append(temp) 
train_step_policy.run(feed_dict={x: inputchannel3, y: [some output list]}, session= sess)   

inputchannel3は次のようになります - [1, 0, 0, 2, 0, 0, ...64, 0, 0]

私の質問は - これは新しいチャネルを追加するための正しい方法ですか?

私がこれを求めているのは、tf.reshapeがこのように再構成する方法がわからないからです。 3つのチャンネルを作成するたびに、3つ目のアイテム(3つの連続したアイテムとは異なる)を取ることを知っていますか?

+0

tf.zerosまたはtf.zeros_likeを使用すると、TensorFlowにゼロテンソルを直接追加できます。テクスチャはtensor.get_shape()で見つけることができます。 tf.concatまたはtf.stackを使用して新しいテンソルを作成します。これは、グラフを操作して物事をきれいにする方法の1つです。それ以外の場合、私はあなたがリシェイプの仕組みを読み、それに応じてNumPyでデータをフォーマットするべきだと思います。 – pfredriksen

+0

@pfredriksenありがとう。ゼロテンソルの問題は、質問を簡単にするだけでした。ありがとう、私はtf.concatとスタックを見てみましょう。私がリシェイプについて読んだことから、それは大丈夫とコンパイルされているように見えるが、私が複数のチャンネルでリシェイプを使用したのはこれが初めてであるため、私より知識のある方が、 3チャンネルを使用する。 – Achilles

答えて

1

あなたの質問はした

が、これは新しいチャネルを追加するための正しい方法ですか?

これに対する短い答えは:はい、素晴らしい仕事です!

この関数の機能を理解するには、ドキュメントを参照してください。https://www.tensorflow.org/api_docs/python/tf/reshape カラー画像とRGBRGBRGBRGB配列(チャンネル1,2,3,1,2,3など)がある場合は、テンソルフローに3つのチャンネルを作成する方法

あなたの状態として:同じよう

inputchannel3が見える - 私はあなたがやったと思う[1、0、0、2、0、0、... 64、0、0]

すべての正しい:D

これは役立ちます!

+0

素晴らしい!ありがとう、 'RGBRGBRGBRGB配列 'はデータを視覚化しやすくします。 – Achilles

関連する問題