我从硬盘上传了一个数据集:
data = tf.keras.utils.image_dataset_from_directory('/content/gdrive/MyDrive/Skyrmion Vision/testFiles/train/',batch_size=1,image_size=(171,256))
我意识到这是一个非常小的数据集,只有12张图像,但我只是想习惯自动编码器的布局,并不担心结果。因此,我将其分为train_size和test_size:
train_size = 11
val_size = 0
test_size = 1
test_size + val_size + train_size
train = data.take(train_size)
val = data.skip(train_size).take(val_size)
test = data.skip(train_size+val_size).take(test_size)
len(test)
自动编码器符合要求,并给我一个结果摘要,但是,我想在剩下的一个图像上测试结果。我想看看我是否可以查看剩下的图像,我尝试了:
cv2_imshow(test)
失败并显示以下消息:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-32-7a07ce04e52f> in <module>
----> 1 cv2_imshow(test)
/usr/local/lib/python3.7/dist-packages/google/colab/patches/__init__.py in cv2_imshow(a)
16 image.
17 """
---> 18 a = a.clip(0, 255).astype('uint8')
19 # cv2 stores colors as BGR; convert to RGB
20 if a.ndim == 3:
AttributeError: 'TakeDataset' object has no attribute 'clip'
我想把测试图像转换成:
passed_image=autoencoder.predict(test)
它实际上完成了,但是,我也无法查看passed_image,它给了我另一个错误:
KeyError Traceback (most recent call last)
/usr/local/lib/python3.7/dist-packages/PIL/Image.py in fromarray(obj, mode)
2713 try:
-> 2714 mode, rawmode = _fromarray_typemap[typekey]
2715 except KeyError:
KeyError: ((1, 1, 256, 3), '|u1')
During handling of the above exception, another exception occurred:
TypeError Traceback (most recent call last)
2 frames
/usr/local/lib/python3.7/dist-packages/PIL/Image.py in fromarray(obj, mode)
2714 mode, rawmode = _fromarray_typemap[typekey]
2715 except KeyError:
-> 2716 raise TypeError("Cannot handle this data type: %s, %s" % typekey)
2717 else:
2718 rawmode = mode
TypeError: Cannot handle this data type: (1, 1, 256, 3), |u1
很明显,我不明白这些数据集是如何设置的,有人能帮我吗?我想确保我的测试图像实际上进入了预测,然后我想看到预测。
1条答案
按热度按时间w8f9ii691#
在Web上搜索了很多次之后,我发现即使只有一个图像,我仍然必须使用test.as_numpy_iterator()
然后图像会显示