使用百度飛槳 API 例如:Resize Normalize,處理數據的時候。
Resize:如果輸入的圖像是 PIL 讀取的圖像這個數據格式是 HWC ,Resize 就需要 HWC 格式的數據。
Normalize:有 data_format 參數,把數據格式設爲 data_format="HWC"。
當數據處理完後把數據輸入到網絡模型的時候,網絡模型一般都是 CHW,需要把數據格式轉換一下,這樣才能正常運行程序
- C 通道數
- H 高
- W 寬
代碼舉例:
import numpy as np
from PIL import Image
import paddle.vision.transforms as pptf
import paddle.vision as ppvs
def get_image_data_to_net(image_path: str):
# 設置圖像處理後端
ppvs.set_image_backend("pil")
# 用 PIL 庫讀取圖像
image = Image.open(image_path)
# Resize: 調整圖像大小, Normalize: 圖像歸一化處理
transform = pptf.Compose([pptf.Resize(size=[224, 224]), pptf.Normalize(mean=[127.5, 127.5, 127.5],
std=[127.5, 127.5, 127.5], data_format='HWC')])
image = transform(image)
# 轉換圖像 HWC 轉爲 CHW
image = np.transpose(image, (2,0,1))
return image.astype("float32")