numpyでtensorの余分な次元を除去する
最近はDeep Learningを使った研究をしています.
データセットを可視化したいとなときには,numpy
の配列から直接
numpy.imshow()
などの関数を使って,グレースケール画像を表示しようとする,
配列の形が(28, 28, 1)
のように,色情報部分のチャンネルが,1
になってしまっている場合,以下のようなエラーが出ます.
TypeError: Invalid dimensions for image data
そのため,配列の形を(28, 28)
にするのだが,そのときにnumpy.squeeze()
を使うとスマートにできます.
>>> print img.shape (28, 28, 1) >>> img = numpy.squeeze(img) >>> print img.shape (28, 28)
これでOK