簡體   English   中英

圖像像素可以存儲在一維數組中嗎?

[英]Could images pixels be stored in 1 D array?

我正在訓練機器學習 model,它將圖像作為負責分類的輸入,我將圖像像素存儲在數組中,但我在互聯網上發現圖像可以存儲在二維數組中,下面是我的代碼,如果它被存儲在一維格式上,那么它是如何在 python 中完成的,因為在一個索引中只有一個值發生,那么 (124,124) 圖像如何存儲在其中?

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])

對於圖像分類,將圖像視為矩陣通常是一個更好的主意,因為它有助於以自然的方式保持本地鄰域和連接信息,而無需使用全連接層或 RNN 等。所以,我建議你不要不要將您的訓練數據存儲在列表中。 相反,使用所有深度學習框架所做的:將它們存儲在大小為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(...)

If you chose a framework like PyTorch or TensorFlow etc, you'll be able to use their own tensor types that can easily transferred to GPU (which is not the case for numpy arrays).

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM