最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于pytorch實現(xiàn)對圖片進行數(shù)據(jù)增強

 更新時間:2024年01月05日 10:22:44   作者:草莓橙子碗  
圖像數(shù)據(jù)增強是一種在訓(xùn)練機器學(xué)習(xí)和深度學(xué)習(xí)模型時常用的策略,尤其是在計算機視覺領(lǐng)域,具體而言,它通過創(chuàng)建和原始圖像稍有不同的新圖像來擴大訓(xùn)練集,本文給大家介紹了如何基于pytorch實現(xiàn)對圖片進行數(shù)據(jù)增強,需要的朋友可以參考下

背景

在進行機器學(xué)習(xí)的任務(wù)中,我們的訓(xùn)練數(shù)據(jù)往往是有限的,在有限的數(shù)據(jù)集上獲得較好的模型訓(xùn)練結(jié)果,我們不僅要在模型結(jié)構(gòu)上下功夫,另一方面也需要對數(shù)據(jù)集進行數(shù)據(jù)增強

圖片數(shù)據(jù)增強

圖像數(shù)據(jù)增強是一種在訓(xùn)練機器學(xué)習(xí)和深度學(xué)習(xí)模型時常用的策略,尤其是在計算機視覺領(lǐng)域。具體而言,它通過創(chuàng)建和原始圖像稍有不同的新圖像來擴大訓(xùn)練集。 數(shù)據(jù)增強的主要目標有以下幾點:

  •  解決過擬合:過擬合是指模型在訓(xùn)練集上表現(xiàn)得過于優(yōu)秀,但是在測試集(即未見過的新數(shù)據(jù))上表現(xiàn)差的現(xiàn)象。一個常見的解決過擬合的策略是增加訓(xùn)練數(shù)據(jù)。數(shù)據(jù)增強通過在原有訓(xùn)練數(shù)據(jù)的基礎(chǔ)上增加各種變化的數(shù)據(jù),有效地增大了訓(xùn)練集。
  • 提高模型的泛化能力:一些數(shù)據(jù)增強手段(如旋轉(zhuǎn)、縮放、平移等)可以模擬一些真實場景中會產(chǎn)生的視覺變化,有助于訓(xùn)練模型對這些場景變化更具有魯棒性,從而提高模型的泛化能力。
  • 引入可控制的噪聲:一些數(shù)據(jù)增強方法,如隨機裁剪、像素值噪聲、顏色偏移等,可以在一定程度上模擬真實環(huán)境中的噪聲。以這樣的方式引入的噪聲可以使模型更健壯,并且增強模型的噪聲容忍力。
  • 視覺不變性:通過像翻轉(zhuǎn)、旋轉(zhuǎn)這樣的變換,數(shù)據(jù)增強可以幫助模型在任何視覺角度下都能正確地識別出相同的對象,輸入圖像進行各種方式的扭曲后仍能被模型準確識別出來,增強了模型的視覺不變性。 總的來說,圖片數(shù)據(jù)增強可以讓模型學(xué)習(xí)到更多樣性的數(shù)據(jù),可以在一定程度上提升模型的識別準確率,更好的適應(yīng)實際環(huán)境中樣本的多樣性,從而提高模型的泛化能力。

代碼實現(xiàn)

我們使用torchvision的transforms庫對圖片數(shù)據(jù)進行數(shù)據(jù)增強,使用一張卡比巴拉的圖片

首先讀取圖片數(shù)據(jù),以下是準備工作

from PIL import Image
import numpy as np
import torchvision.transforms as tfs
import matplotlib.pyplot as plt
 
img_path = r"D:\CSDN_point\1_4\kabibala.jpg"
img = Image.open(img_path)
print("the shape of img is {}".format(np.array(img).shape))

圖片伸縮

img_re = tfs.Resize((500,1000))(img)
plt.imshow(img_re)
plt.show()

tfs.Reszie((500,1000))把圖像的高和寬分別拉伸到500像素和1000像素

圖片裁剪

img_crop = tfs.RandomCrop(500)(img)
plt.imshow(img_crop)
plt.show()

tfs.RandomCrop(500)隨機截取圖片500\times500大小的區(qū)域

中心裁剪

img_crop_cen = tfs.CenterCrop(700)(img)
plt.imshow(img_crop_cen)
plt.show()

tfs.CenterCrop(700)裁剪圖片中心位置700\times700大小的區(qū)域

隨機水平翻轉(zhuǎn)

# 隨機水平翻轉(zhuǎn),概率是0.5
img_hori = tfs.RandomHorizontalFlip()(img)
# 隨機垂直翻轉(zhuǎn),概率是0.5
img_ver = tfs.RandomVerticalFlip()(img)
 
plt.subplot(1,2,1)
plt.imshow(img_hori)
plt.title("RandomHorizontalFlip")
plt.subplot(1,2,2)
plt.imshow(img_ver)
plt.title("RandomVerticalFlip")
plt.show()

隨機改變圖片亮度、對比度和色相

img_j = tfs.ColorJitter(brightness=0.5,contrast=0.5,hue=0.5)(img)
plt.imshow(img_j)
plt.show()

tfs.ColorJitter(brightness=0.5,contrast=0.5,hue=0.5)中參數(shù)的含義:

  • brightness=0.5:亮度的浮點數(shù)系數(shù),brightness系數(shù)在 [max(0, 1 - brightness), 1 + brightness] 的范圍內(nèi)隨機選擇。例如,brightness=0.5,就表明亮度在 [0.5, 1.5] 的范圍內(nèi)隨機選擇。
  • contrast=0.5:對比度的浮點數(shù)系數(shù)。對比度系數(shù)在 [max(0, 1 - contrast), 1 + contrast] 的范圍內(nèi)隨機選擇。例如,contrast=0.5,就表明對比度在 [0.5, 1.5] 的范圍內(nèi)隨機選擇。
  • hue=0.5:色相的浮點數(shù)系數(shù)。色相系數(shù)在 [-hue, hue] 的范圍內(nèi)隨機選擇。例如,hue=0.5,就表明色相在 [-0.5, 0.5] 的范圍內(nèi)隨機選擇。

多變換整合

可以使用Compose模塊將多個變換進行整合

# 將多個變換整合到my_trans
my_trans = tfs.Compose([tfs.Resize(800),tfs.RandomHorizontalFlip(),tfs.RandomCrop(500),tfs.RandomVerticalFlip(),tfs.ColorJitter(brightness=0.5,contrast=0.5,hue=0.5)])
 
_,fig = plt.subplots(3,3)
for i in range(3):
    for j in range(3):
        fig[i][j].imshow(my_trans(img))
        plt.axis('off')
plt.show()

以上就是基于pytorch實現(xiàn)對圖片進行數(shù)據(jù)增強的詳細內(nèi)容,更多關(guān)于pytorch圖片數(shù)據(jù)增強的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python生成器與迭代器詳情

    Python生成器與迭代器詳情

    這篇文章主要介紹了Python生成器與迭代器,現(xiàn)在可以通過生成器來直接創(chuàng)建一個列表,是由于內(nèi)存的限制,表的容量肯定是有限的,果我們需要一個包含幾百個元素的列表,是每次訪問的時候只訪問其中的幾個,剩下的元素不使用就很浪費內(nèi)存空間,下面來了解具體內(nèi)容
    2021-11-11
  • 基于python的七種經(jīng)典排序算法(推薦)

    基于python的七種經(jīng)典排序算法(推薦)

    本篇文章主要介紹基于python的七種經(jīng)典排序算法(推薦),具有一定的參考價值,這里整理了詳細的代碼,有需要的小伙伴可以參考下。
    2016-12-12
  • pycharm?python代碼調(diào)試跳出for循環(huán)問題

    pycharm?python代碼調(diào)試跳出for循環(huán)問題

    這篇文章主要介紹了pycharm?python代碼調(diào)試跳出for循環(huán)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python3?中return和yield的區(qū)別

    Python3?中return和yield的區(qū)別

    這篇文章主要介紹了Python3?中return和yield的區(qū)別,return和yield都用來返回值;在一次性地返回所有值場景中return和yield的作用是一樣的,但是具體有什么區(qū)別呢,帶著疑問一起進入下面文章學(xué)習(xí)詳細內(nèi)容吧
    2022-06-06
  • Python數(shù)據(jù)處理之字符串處理技巧全解析

    Python數(shù)據(jù)處理之字符串處理技巧全解析

    這篇文章主要為大家詳細介紹了Python字符串核心操作技巧,涵蓋文本切片,拼接,查找替換,格式化及清洗標準化全流程,有需要的小伙伴可以參考一下
    2025-07-07
  • Pycharm連接遠程mysql報錯的實現(xiàn)

    Pycharm連接遠程mysql報錯的實現(xiàn)

    本文主要介紹了Pycharm連接遠程mysql報錯的實現(xiàn),文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Python的Matplotlib庫應(yīng)用實例超詳細教程

    Python的Matplotlib庫應(yīng)用實例超詳細教程

    這篇文章主要介紹了Python的Matplotlib庫應(yīng)用的相關(guān)資料,Matplotlib是一個強大的Python數(shù)據(jù)可視化庫,支持繪制2D和3D圖像,它提供了簡單易用的API,廣泛應(yīng)用于數(shù)據(jù)分析和科學(xué)研究,需要的朋友可以參考下
    2025-01-01
  • 從numpy數(shù)組中取出滿足條件的元素示例

    從numpy數(shù)組中取出滿足條件的元素示例

    今天小編就為大家分享一篇從numpy數(shù)組中取出滿足條件的元素示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 使用Python從零搭建一個能用的AI Agent

    使用Python從零搭建一個能用的AI Agent

    這篇文章主要為大家詳細介紹了如何使用Python從零搭建一個能用的AI Agent,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2026-03-03
  • 對pandas讀取中文unicode的csv和添加行標題的方法詳解

    對pandas讀取中文unicode的csv和添加行標題的方法詳解

    今天小編就為大家分享一篇對pandas讀取中文unicode的csv和添加行標題的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評論

句容市| 陕西省| 苗栗市| 儋州市| 济源市| 应城市| 青铜峡市| 湟中县| 阜南县| 竹北市| 清远市| 景洪市| 绍兴市| 南汇区| 师宗县| 留坝县| 唐山市| 东光县| 将乐县| 东光县| 利川市| 五峰| 栾城县| 邯郸市| 襄樊市| 镇坪县| 朝阳区| 昌江| 辽源市| 孝感市| 屏东市| 雷州市| 富民县| 康乐县| 保康县| 贵德县| 鸡东县| 南丹县| 山东省| 韩城市| 荆州市|