質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1238閲覧

CNNを作成する際、テスト用の画像を表示させたい

Shinji08

総合スコア3

CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/08/10 12:33

編集2021/08/11 01:14

前提・実現したいこと

画像を訓練用とテスト用に分けている状態で、テストに使用する画像をjupyter noteで表示をしたいのですが、以下のエラーが出てしまい詰まっている状態です。

発生している問題・エラーメッセージ

TypeError Traceback (most recent call last)
<ipython-input-2-e1965da6b250> in <module>
29 xy = (X_train, X_test, y_train, y_test)
30
---> 31 plt.imshow(X_test)
32 plt.show()

~\anaconda3\lib\site-packages\matplotlib\pyplot.py in imshow(X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, filternorm, filterrad, resample, url, data, **kwargs)
2722 filternorm=True, filterrad=4.0, resample=None, url=None,
2723 data=None, **kwargs):
-> 2724 __ret = gca().imshow(
2725 X, cmap=cmap, norm=norm, aspect=aspect,
2726 interpolation=interpolation, alpha=alpha, vmin=vmin,

~\anaconda3\lib\site-packages\matplotlib_init_.py in inner(ax, data, *args, **kwargs)
1445 def inner(ax, *args, data=None, **kwargs):
1446 if data is None:
-> 1447 return func(ax, *map(sanitize_sequence, args), **kwargs)
1448
1449 bound = new_sig.bind(ax, *args, **kwargs)

~\anaconda3\lib\site-packages\matplotlib\axes_axes.py in imshow(self, X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, filternorm, filterrad, resample, url, **kwargs)
5521 resample=resample, **kwargs)
5522
-> 5523 im.set_data(X)
5524 im.set_alpha(alpha)
5525 if im.get_clip_path() is None:

~\anaconda3\lib\site-packages\matplotlib\image.py in set_data(self, A)
700 if (self._A.dtype != np.uint8 and
701 not np.can_cast(self._A.dtype, float, "same_kind")):
--> 702 raise TypeError("Image data of dtype {} cannot be converted to "
703 "float".format(self._A.dtype))
704

TypeError: Image data of dtype object cannot be converted to float

該当のソースコード

from PIL import Image
import os, glob
import numpy as np
from sklearn import model_selection
import matplotlib.pyplot as plt

classes = ["concrete","tile","mortar","brick","wood"]
num_classes = len(classes)
image_size = 50

for index, classlabel in enumerate(classes):
,,,,photos_dir = "./" + classlabel
,,,,files = glob.glob(photos_dir + "/*.jpg")
,,,,for i, file in enumerate(files):
,,,,,,,,if i >= 500: break
,,,,,,,,image = Image.open(file)
,,,,,,,,image = image.convert("RGB")
,,,,,,,,image = image.resize((image_size, image_size))
,,,,,,,,X.append(image)
,,,,,,,,Y.append(index)

X = X
Y = Y

X_train, X_test, y_train, y_test = model_selection.train_test_split(X, Y)
xy = (X_train, X_test, y_train, y_test)

plt.imshow(X_test)
plt.show()

試したこと

X_testの中に画像データがある事は確認済み。
print(X_test)を実行すると<PIL.Image.Image image mode=RGB size=50x50 at 0x271BB9CF220>が多く入っている状態です。

補足情報(FW/ツールのバージョンなど)

python
tensorflow

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ara_ara

2021/08/11 00:09

エラーの全文を載せてください またマークダウン記法について調べコードの書き方に準拠しましょう 特にインデントがないととても読みづらいです(pythonはインデントでスコープを表現しますので)
Shinji08

2021/08/11 01:15

返信ありがとうございます。 エラー全文とインデントの追加をさせていただきました。
guest

回答1

0

ベストアンサー

plt.imshow()の引数には一画像分の配列を渡す必要があります
画像一枚ずつ確認すれば良いのであれば

python

1plt.imshow(X_test[0])

とします。

複数枚確認したいのであれば以下を参考にタイル状に表示させるようにすると良いでしょう
https://tomomai.com/python-matplotlib/

投稿2021/08/11 01:43

ara_ara

総合スコア47

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Shinji08

2021/08/11 01:50

本当にありがとうございます。無事解決しました。!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問