前提・実現したいこと
画像を訓練用とテスト用に分けている状態で、テストに使用する画像を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
回答1件
あなたの回答
tips
プレビュー