[英]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.