合理主義的グルメブログ

学生起業家の日常をツラツラと書いています。主に食事情報です。

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