現在、私は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つの連続したアイテムとは異なる)を取ることを知っていますか?
tf.zerosまたはtf.zeros_likeを使用すると、TensorFlowにゼロテンソルを直接追加できます。テクスチャはtensor.get_shape()で見つけることができます。 tf.concatまたはtf.stackを使用して新しいテンソルを作成します。これは、グラフを操作して物事をきれいにする方法の1つです。それ以外の場合、私はあなたがリシェイプの仕組みを読み、それに応じてNumPyでデータをフォーマットするべきだと思います。 – pfredriksen
@pfredriksenありがとう。ゼロテンソルの問題は、質問を簡単にするだけでした。ありがとう、私はtf.concatとスタックを見てみましょう。私がリシェイプについて読んだことから、それは大丈夫とコンパイルされているように見えるが、私が複数のチャンネルでリシェイプを使用したのはこれが初めてであるため、私より知識のある方が、 3チャンネルを使用する。 – Achilles