程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python工具方法27 訓練時在線random resize的實現(支持圖像分類與語義分割)

編輯:Python

在訓練過程中動態調整數據的尺寸可以增強模型對不同size尺寸物體的適應能力,是提升模型泛化能力的一種手段。如在paddledection套件中,就提供了參數設置多種size組合;此外,博主在拜讀SegFormer模型論文時,作者也提到了使用0.5-2.0的倍率對訓練數據進行縮放(作者操作還包含隨機水平翻轉和隨機裁剪)。為此對該操作進行實現,對於圖像的resize均使用PIL.Image實現與ai框架無任何關聯,paddle、pytorch、tensorflwo都可以使用。對目標檢測暫不支持,如果後續有需要會完善。

在使用中切記,進行random_size時,由於要將圖片轉換為uint8,因此傳入的數據不能進行標准化(減均值除方差),只傳入允許歸一化的數據。否則會導致性能極差,模型無法收斂(標准化的數據存在負數,轉uint8後存在信息丟失)

1、具體實現

1.1 resize函數的實現

在進行圖像resize時,需要注意的是label的格式是WH,為二維數據,而image的格式為CWH或WHC為三維數據,此外image還分為單通道和三通道,三通道通常為rgb數據,而單通道通常為灰度圖數據。針對於不同的數據需要選用不同的函數進行resize操作,具體共有以下三個函數。

from PIL import 

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved