Machine learning 图像像素是否可以存储在一维阵列中?
我正在训练一个机器学习模型,该模型将图像作为负责分类的输入,我将图像像素存储在数组中,但我在互联网上发现图像可以存储在二维数组中,下面是我的代码,如果它存储在一维格式上,那么它是如何在python中实现的,因为在一个索引中,只有一个值发生,那么如何实现呢(124124)存储在其中的图像Machine learning 图像像素是否可以存储在一维阵列中?,machine-learning,image-processing,computer-vision,Machine Learning,Image Processing,Computer Vision,我正在训练一个机器学习模型,该模型将图像作为负责分类的输入,我将图像像素存储在数组中,但我在互联网上发现图像可以存储在二维数组中,下面是我的代码,如果它存储在一维格式上,那么它是如何在python中实现的,因为在一个索引中,只有一个值发生,那么如何实现呢(124124)存储在其中的图像 training_data=[] def create_training_data(): for category in Categories: path=os.path.join(Dat
training_data=[]
def create_training_data():
for category in Categories:
path=os.path.join(DataDir,category)
IMG_SIZE=(124,124)
for img in os.listdir(path):
try:
img_arr=cv2.imread(os.path.join(path,img),cv2.IMREAD_GRAYSCALE)
new_array=cv2.resize(img_arr,(IMG_SIZE))
training_data.append([new_array])
对于图像分类,通常最好把你的图像看作矩阵,因为它有助于保持本地邻居和连接信息的自然方式,而不需要使用完全连接的层或RNNs等。所以,我建议你不要把你的训练数据存储在列表中,而是使用所有的深度学习FRAM。eworks do:将它们存储在大小为
BxCxHxW
的张量中,其中B
是批次大小,C
是通道数,H,W
是宽度/高度。例如:
#numpy
training_data=np.zeros([B,C,H,W])
#load a single image inside your loop
training_data[i,:,:,]=cv2.imread(...)
如果您选择PyTorch或TensorFlow等框架,您将能够使用它们自己的张量类型,这些张量类型可以轻松地传输到GPU(numpy阵列的情况并非如此)