在这段代码(感谢这位回答者)中:
from PIL import Imageimport numpy as npdef load_image(infilename): img = Image.open(infilename) img.load() data = np.asarray(img, dtype="int32") return datadef save_image(npdata, outfilename): img = Image.fromarray(np.asarray(np.clip(npdata, 0, 255), dtype="uint8"), "L") img.save(outfilename)data = load_image('cat.0.jpg')print(data.shape)
print(data.shape)
的值是一个包含三个维度的元组(374, 500, 3)
。因此,我有以下问题:
- 这个元组代表什么?
- 为了用于机器学习分类目的,将这样的元组数据转换成一维向量是否有意义?如果是,该如何做?
非常感谢。
回答:
这些维度代表的是:(行,列,通道)。是的,通常将一维数组输入到神经网络中是有意义的,例如如果你使用的是全连接网络。要进行重塑,你有多种选择:
-
使用reshape函数
data.reshape(-1)
-
使用flatten函数
data.flatten()