数据增强 transform_深度学习-Pytorch框架学习之数据处理篇
生活随笔
收集整理的這篇文章主要介紹了
数据增强 transform_深度学习-Pytorch框架学习之数据处理篇
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
數據是深度學習的核心,大部分論文里都會提到data-driven這個詞,也就是數據驅動的意思?;镜哪P痛罱ㄍ瓿珊?#xff0c;如何處理數據,如何將數據送給網絡,如何做數據增強等等,對于提高網絡的性能都十分重要,本篇文章會簡單講述下數據處理過程,后續有時間會持續更新這方面的內容,互相學習,共勉!
數據集的均值和標準差
def compute_mean_and_std(dataset): # 輸入為PyTorch的dataset,即數據集,輸出為對應數據集均值和標準差 # 均值 mean_r = 0 mean_g = 0 mean_b = 0 for img, _ in dataset: img = np.asarray(img) # 將 PIL Image 改變成numpy的數組類型 mean_b += np.mean(img[:, :, 0]) mean_g += np.mean(img[:, :, 1]) mean_r += np.mean(img[:, :, 2]) mean_b /= len(dataset) mean_g /= len(dataset) mean_r /= len(dataset) diff_r = 0 diff_g = 0 diff_b = 0 N = 0 for img, _ in dataset: img = np.asarray(img) diff_b += np.sum(np.power(img[:, :, 0] - mean_b, 2)) diff_g += np.sum(np.power(img[:, :, 1] - mean_g, 2)) diff_r += np.sum(np.power(img[:, :, 2] - mean_r, 2)) N += np.prod(img[:, :, 0].shape) std_b = np.sqrt(diff_b / N) std_g = np.sqrt(diff_g / N) std_r = np.sqrt(diff_r / N) mean = (mean_b.item() / 255.0, mean_g.item() / 255.0, mean_r.item() / 255.0) std = (std_b.item() / 255.0, std_g.item() / 255.0, std_r.item() / 255.0) return mean, std常用訓練和驗證數據預處理
ToTensor 會將 PIL.Image 或形狀為 H×W×D,數值范圍為 [0, 255] 的numpy數組轉換為形狀為 D×H×W,數值范圍為 [0.0, 1.0] 的 torch.Tensor。
train_transform = torchvision.transforms.Compose([ torchvision.transforms.RandomResizedCrop(size=224, scale=(0.08, 1.0)), torchvision.transforms.RandomHorizontalFlip(), torchvision.transforms.ToTensor(), torchvision.transforms.Normalize(mean=(0.485, 0.456, 0.406)std=(0.229, 0.224, 0.225)), ]) val_transform = torchvision.transforms.Compose([ torchvision.transforms.Resize(256), torchvision.transforms.CenterCrop(224), torchvision.transforms.ToTensor(), torchvision.transforms.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),])視頻數據
import cv2video = cv2.VideoCapture(mp4_path)height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))num_frames = int(video.get(cv2.CAP_PROP_FRAME_COUNT))fps = int(video.get(cv2.CAP_PROP_FPS))video.release()未完待續,持續更新!
總結
以上是生活随笔為你收集整理的数据增强 transform_深度学习-Pytorch框架学习之数据处理篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux命令终端提示符显示-bash-
- 下一篇: 未结束的字符文字_PAT B1042:字