2017-05-16 19 views
0

私はNeural Net(テンソルフローを使用)の入力として使用する3D numpy配列として保存されたRGB画像(32 x 32 x 3)を持っています。それらを入力として使用するためには、reshape(1、-1)を使用して1D np配列(1 x 3072)に変更します。ネットをトレーニングし終えたら、出力を元に戻したいのですが、reshape(32,32,3)を使用しても結果は期待できません。Python:3D画像(np配列)を1Dに再構成し、それを3Dに正しく戻すにはどうしたらいいですか?

これは正しい方法ですか?各データが正しい場所に戻ってくることをどのように確認できますか?

+0

say shape(4,4,3)という最小の代表サンプルを使用して、期待される出力を教えてください。 – Divakar

+0

@Divakar私は、最初の3D配列のインデックス(5,10,1)に格納されている値を1Dから3Dに変更するときに(5,10,1)に戻したいと思います。それが元のインデックスに戻っている限り、1Dの場所は私には関係ありません。それが明確でない場合、私は小さな例を書くでしょう – costisst

答えて

1

1Dアレイを作成する場合は、.resape(-1)を使用して、配列の線形バージョンを作成します。 .reshape(32,32,3)を使用すると、32、32、3の配列が作成されます。これは、記述されている元の形式です。 '-1'を使用すると、結合されたネストされた配列内の要素の数と同じサイズの線形配列が作成されます。

+0

あなたが言ったことは正しいです。私の質問です:私は元の配列を再形成した後、値は線形の変形の前にどこに同じインデックスになりますか? – costisst

+0

同じ順序の引数を使用する限り、元の配列と同じ構造を持つ配列が生成されるはずです。 –

0

M(32 x 32 x 3)の場合、.reshape(1,-1)は、形状(1, 32*32*3)の2d配列(1dではなく)を生成します。これは同じ種類のreshapeステートメントで(32,32,3)に再構成することができます。

しかし、それは入力を再構成しています。しかし、あなたはネットの出力がどのようなものかを教えていません。それはどのような形をしていますか?どのように出力を再構成しようとしていますが、何が問題なのですか?

+0

出力は入力と同じ形をしています。それで(1,3072)、私の入力がイメージなので出力も1つにしたい。ネットからの私の再構成の損失は少なく、イメージを再び印刷しようとすると、赤い緑と青の線で黒い背景が得られます。だから、私はどこが間違っているかを見極めようとしている。 NNか私の再構成のどちらかが試みます。 – costisst

関連する問題