pytorch中的隨機克羅普(1)
給我買咖啡☕
*備忘錄:
- 我的帖子解釋了牛津iiitpet()。
Randomcrop()可以隨機裁剪圖像,如下所示:
- >初始化的第一個參數是大小(必需類型:int或tuple/list/list(int)或size()):
*備忘錄:
-
- 是[高度,寬度]。
- 必須是1< = x。
-
元組/列表必須是具有1或2個元素的1D。 單個值(int或tuple/list(int))是指[size,size]。 - >初始化的第二個參數是填充(可選默認:非類型:int或tuple/list(int)): *備忘錄:
一個元組/列表必須是1D,具有1、2或4個元素。 單個值(int或tuple/list(int))是指[填充,填充,填充,填充]。 -
- > double值(元組/列表(int))表示[填充[0],填充[1],填充[0],填充[1]。
- 初始化的第三個參數是pad_if_needed(可選默認:false-type:bool):
- 如果是錯誤的,並且大小小於原始圖像或填充圖像的填充圖像,則出現錯誤。 >
- 如果它的真實且大小小於原始圖像或填充圖像的填充圖像,則沒有錯誤,則該圖像被隨機填充以變為尺寸。
- 初始化的第四個參數是填充(可選默認:0型:int,float或tuple/tuple/list(int或float)):
*備忘錄:
- >它可以更改圖像的背景。 *當圖像被正面填充時,可以看到背景。
- 元組/列表必須是具有1或3個元素的1D。
初始化的第五個參數是padding_mode(可選默認:'constant'-type:str)。 *可以將其設置為 *'常數','edge',“反射”或“對稱”。 - >
- 第一個參數是img(必需類型:pil圖像或張量(int)):
*備忘錄:
- 張量必須為2D或3D。
- 不使用img =。
- 建議根據V1或V2使用V2?我應該使用哪一個?
-
from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import RandomCrop randomcrop = RandomCrop(size=100) randomcrop = RandomCrop(size=100, padding=None, pad_if_needed=False, fill=0, padding_mode='constant') randomcrop # RandomCrop(size=(100, 100), # pad_if_needed=False, # fill=0, # padding_mode=constant) randomcrop.size # (100, 100) print(randomcrop.padding) # None randomcrop.pad_if_needed # False randomcrop.fill # 0 randomcrop.padding_mode # 'constant' origin_data = OxfordIIITPet( root="data", transform=None ) s300_data = OxfordIIITPet( # `s` is size. root="data", transform=RandomCrop(size=300) # transform=RandomCrop(size=[300, 300]) ) s200_data = OxfordIIITPet( root="data", transform=RandomCrop(size=200) ) s100_data = OxfordIIITPet( root="data", transform=RandomCrop(size=100) ) s50_data = OxfordIIITPet( root="data", transform=RandomCrop(size=50) ) s10_data = OxfordIIITPet( root="data", transform=RandomCrop(size=10) ) s1_data = OxfordIIITPet( root="data", transform=RandomCrop(size=1) ) s200_300_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[200, 300]) ) s300_200_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[300, 200]) ) s300p100_data = OxfordIIITPet( # `p` is padding. root="data", transform=RandomCrop(size=300, padding=100) # transform=RandomCrop(size=300, padding=[100, 100]) # transform=RandomCrop(size=300, padding=[100, 100, 100, 100]) ) s300p200_data = OxfordIIITPet( root="data", transform=RandomCrop(size=300, padding=200) ) s700_594p100origin_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[700, 594], padding=100) ) s300p100_data = OxfordIIITPet( root="data", transform=RandomCrop(size=300, padding=100) ) s600_594p100_50origin_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[600, 594], padding=[100, 50]) ) s300p100_50_data = OxfordIIITPet( root="data", transform=RandomCrop(size=300, padding=[100, 50]) ) s650_494p25_50_75_100origin_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[650, 494], padding=[25, 50, 75, 100]) ) s300p25_50_75_100_data = OxfordIIITPet( root="data", transform=RandomCrop(size=300, padding=[25, 50, 75, 100]) ) s300_194pn100origin_data = OxfordIIITPet( # `n` is negative. root="data", transform=RandomCrop(size=[300, 194], padding=-100) ) s150pn100_data = OxfordIIITPet( root="data", transform=RandomCrop(size=150, padding=-100) ) s300_294pn50n100origin_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[300, 294], padding=[-50, -100]) ) s150pn50n100_data = OxfordIIITPet( root="data", transform=RandomCrop(size=150, padding=[-50, -100]) ) s350_294pn25n50n75n100origin_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[350, 294], padding=[-25, -50, -75, -100]) ) s150pn25n50n75n100_data = OxfordIIITPet( root="data", transform=RandomCrop(size=150, padding=[-25, -50, -75, -100]) ) s600_444p25_50origin_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[600, 444], padding=[25, 50]) ) s200p25_50_data = OxfordIIITPet( root="data", transform=RandomCrop(size=200, padding=[25, 50]) ) s400_344pn25n50origin_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[400, 344], padding=[-25, -50]) ) s200pn25n50_data = OxfordIIITPet( root="data", transform=RandomCrop(size=200, padding=[-25, -50]) ) s400_444p25n50origin_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[400, 444], padding=[25, -50]) ) s200p25n50_data = OxfordIIITPet( root="data", transform=RandomCrop(size=200, padding=[25, -50]) ) s600_344pn25_50origin_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[600, 344], padding=[-25, 50]) ) s200pn25_50_data = OxfordIIITPet( root="data", transform=RandomCrop(size=200, padding=[-25, 50]) ) s700_594p100fgrayorigin_data = OxfordIIITPet( # `f` is fill. root="data", transform=RandomCrop(size=[700, 594], padding=100, fill=150) # transform=RandomCrop(size=[700, 594], padding=100, fill=[150]) ) s300p100fgray_data = OxfordIIITPet( root="data", transform=RandomCrop(size=300, padding=100, fill=150) ) s700_594p100fpurpleorigin_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[700, 594], padding=100, fill=[160, 32, 240]) ) s300p100fpurple_data = OxfordIIITPet( root="data", transform=RandomCrop(size=300, padding=100, fill=[160, 32, 240]) ) s700_594p100pmconstorigin_data = OxfordIIITPet( # `pm` is padding_mode. root="data", # `const` is constant. transform=RandomCrop(size=[700, 594], padding=100, padding_mode='constant') ) s300p100pmconst_data = OxfordIIITPet( root="data", transform=RandomCrop(size=300, padding=100, padding_mode='constant') ) s700_594p100pmedgeorigin_data = OxfordIIITPet( root="data", transform=RandomCrop(size=[700, 594], padding=100, padding_mode='edge') ) s300p100pmedge_data = OxfordIIITPet( root="data", transform=RandomCrop(size=300, padding=100, padding_mode='edge') ) s700_594p100pmrefleorigin_data = OxfordIIITPet( # `refle` is reflect. root="data", transform=RandomCrop(size=[700, 594], padding=100, padding_mode='reflect') ) s300p100pmrefle_data = OxfordIIITPet( root="data", transform=RandomCrop(size=300, padding=100, padding_mode='reflect') ) s700_594p100pmsymmeorigin_data = OxfordIIITPet( # `symme` is symmetric. root="data", transform=RandomCrop(size=[700, 594], padding=100, padding_mode='symmetric') ) s300p100pmsymme_data = OxfordIIITPet( root="data", transform=RandomCrop(size=300, padding=100, padding_mode='symmetric') ) import matplotlib.pyplot as plt def show_images1(data, main_title=None): plt.figure(figsize=(10, 5)) plt.suptitle(t=main_title, y=0.8, fontsize=14) for i in range(1, 6): plt.subplot(1, 5, i) plt.imshow(X=data[0][0]) plt.tight_layout() plt.show() plt.figure(figsize=(7, 9)) plt.title(label="s500_394origin_data", fontsize=14) plt.imshow(X=origin_data[0][0]) show_images1(data=origin_data, main_title="s500_394origin_data") show_images1(data=s300_data, main_title="s300_data") show_images1(data=s200_data, main_title="s200_data") show_images1(data=s100_data, main_title="s100_data") show_images1(data=s50_data, main_title="s50_data") show_images1(data=s10_data, main_title="s10_data") show_images1(data=s1_data, main_title="s1_data") show_images1(data=s200_300_data, main_title="s200_300_data") show_images1(data=s300_200_data, main_title="s300_200_data") print() show_images1(data=s700_594p100origin_data, main_title="s700_594p100origin_data") show_images1(data=s300p100_data, main_title="s300p100_data") print() show_images1(data=s600_594p100_50origin_data, main_title="s600_594p100_50origin_data") show_images1(data=s300p100_50_data, main_title="s300p100_50_data") print() show_images1(data=s650_494p25_50_75_100origin_data, main_title="s650_494p25_50_75_100origin_data") show_images1(data=s300p25_50_75_100_data, main_title="s300p25_50_75_100_data") print() show_images1(data=s300_194pn100origin_data, main_title="s300_194pn100origin_data") show_images1(data=s150pn100_data, main_title="s150pn100_data") print() show_images1(data=s300_294pn50n100origin_data, main_title="s300_294pn50n100origin_data") show_images1(data=s150pn50n100_data, main_title="s150pn50n100_data") print() show_images1(data=s350_294pn25n50n75n100origin_data, main_title="s350_294pn25n50n75n100origin_data") show_images1(data=s150pn25n50n75n100_data, main_title="s150pn25n50n75n100_data") print() show_images1(data=s600_444p25_50origin_data, main_title="s600_444p25_50origin_data") show_images1(data=s200p25_50_data, main_title="s200p25_50_data") print() show_images1(data=s400_344pn25n50origin_data, main_title="s400_344pn25n50origin_data") show_images1(data=s200pn25n50_data, main_title="s200pn25n50_data") print() show_images1(data=s400_444p25n50origin_data, main_title="s400_444p25n50origin_data") show_images1(data=s200p25n50_data, main_title="s200p25n50_data") print() show_images1(data=s600_344pn25_50origin_data, main_title="s600_344pn25_50origin_data") show_images1(data=s200pn25_50_data, main_title="s200pn25_50_data") print() show_images1(data=s700_594p100fgrayorigin_data, main_title="s700_594p100fgrayorigin_data") show_images1(data=s300p100fgray_data, main_title="s300p100fgray_data") print() show_images1(data=s700_594p100fpurpleorigin_data, main_title="s700_594p100fpurpleorigin_data") show_images1(data=s300p100fpurple_data, main_title="s300p100fpurple_data") print() show_images1(data=s700_594p100pmconstorigin_data, main_title="s700_594p100pmconstorigin_data") show_images1(data=s300p100pmconst_data, main_title="s300p100pmconst_data") print() show_images1(data=s700_594p100pmedgeorigin_data, main_title="s700_594p100pmedgeorigin_data") show_images1(data=s300p100pmedge_data, main_title="s300p100pmedge_data") print() show_images1(data=s700_594p100pmrefleorigin_data, main_title="s700_594p100pmrefleorigin_data") show_images1(data=s300p100pmrefle_data, main_title="s300p100pmrefle_data") print() show_images1(data=s700_594p100pmsymmeorigin_data, main_title="s700_594p100pmsymmeorigin_data") show_images1(data=s300p100pmsymme_data, main_title="s300p100pmsymme_data") # ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ def show_images2(data, main_title=None, s=None, p=None, pin=False, f=0, pm='constant'): plt.figure(figsize=(10, 5)) plt.suptitle(t=main_title, y=0.8, fontsize=14) temp_s = s im = data[0][0] for i in range(1, 6): plt.subplot(1, 5, i) if not temp_s: s = [im.size[1], im.size[0]] rc = RandomCrop(size=s, padding=p, # Here pad_if_needed=pin, fill=f, padding_mode=pm) plt.imshow(X=rc(im)) # Here plt.tight_layout() plt.show() plt.figure(figsize=(7, 9)) plt.title(label="s500_394origin_data", fontsize=14) plt.imshow(X=origin_data[0][0]) show_images2(data=origin_data, main_title="s500_394origin_data") show_images2(data=origin_data, main_title="s300_data", s=300) show_images2(data=origin_data, main_title="s200_data", s=200) show_images2(data=origin_data, main_title="s100_data", s=100) show_images2(data=origin_data, main_title="s50_data", s=50) show_images2(data=origin_data, main_title="s10_data", s=10) show_images2(data=origin_data, main_title="s1_data", s=1) show_images2(data=origin_data, main_title="s200_300_data", s=[200, 300]) show_images2(data=origin_data, main_title="s300_200_data", s=[300, 200]) print() show_images2(data=origin_data, main_title="s700_594p100origin_data", s=[700, 594], p=100) show_images2(data=origin_data, main_title="s300p100_data", s=300, p=100) print() show_images2(data=origin_data, main_title="s600_594p100_50origin_data", s=[600, 594], p=[100, 50]) show_images2(data=origin_data, main_title="s300p100_50_data", s=300, p=[100, 50]) print() show_images2(data=origin_data, main_title="s650_494p25_50_75_100origin_data", s=[650, 494], p=[25, 50, 75, 100]) show_images2(data=origin_data, main_title="s300p25_50_75_100_data", s=300, p=[25, 50, 75, 100]) print() show_images2(data=origin_data, main_title="s300_194pn100origin_data", s=[300, 194], p=-100) show_images2(data=origin_data, main_title="s150pn100_data", s=150, p=-100) print() show_images2(data=origin_data, main_title="s300_294pn50n100origin_data", s=[300, 294], p=[-50, -100]) show_images2(data=origin_data, main_title="s150pn50n100_data", s=150, p=[-50, -100]) print() show_images2(data=origin_data, main_title="s350_294pn25n50n75n100origin_data", s=[350, 294], p=[-25, -50, -75, -100]) show_images2(data=origin_data, main_title="s150pn25n50n75n100_data", s=150, p=[-25, -50, -75, -100]) print() show_images2(data=origin_data, main_title="s600_444p25_50origin_data", s=[600, 444], p=[25, 50]) show_images2(data=origin_data, main_title="s200p25_50_data", s=200, p=[25, 50]) print() show_images2(data=origin_data, main_title="s400_344pn25n50origin_data", s=[400, 344], p=[-25, -50]) show_images2(data=origin_data, main_title="s200pn25n50_data", s=200, p=[-25, -50]) print() show_images2(data=origin_data, main_title="s400_444p25n50origin_data", s=[400, 444], p=[25, -50]) show_images2(data=origin_data, main_title="s200p25n50_data", s=200, p=[25, -50]) print() show_images2(data=origin_data, main_title="s600_344pn25_50origin_data", s=[600, 344], p=[-25, 50]) show_images2(data=origin_data, main_title="s200pn25_50_data", s=200, p=[-25, 50]) print() show_images2(data=origin_data, main_title="s700_594p100fgrayorigin_data", s=[700, 594], p=100, f=150) show_images2(data=origin_data, main_title="s300p100fgray_data", s=300, p=100, f=150) print() show_images2(data=origin_data, main_title="s700_594p100fpurpleorigin_data", s=[700, 594], p=100, f=[160, 32, 240]) show_images2(data=origin_data, main_title="s300p100fpurple_data", s=300, p=100, f=[160, 32, 240]) print() show_images2(data=origin_data, main_title="s700_594p100pmconstorigin_data", s=[700, 594], p=100, pm='constant') show_images2(data=origin_data, main_title="s300p100pmconst_data", s=300, p=100, pm='constant') print() show_images2(data=origin_data, main_title="s700_594p100pmedgeorigin_data", s=[700, 594], p=100, pm='edge') show_images2(data=origin_data, main_title="s300p100pmedge_data", s=300, p=100, pm='edge') print() show_images2(data=origin_data, main_title="s700_594p100pmrefleorigin_data", s=[700, 594], p=100, pm='reflect') show_images2(data=origin_data, main_title="s300p100pmrefle_data", s=300, p=100, pm='reflect') print() show_images2(data=origin_data, main_title="s700_594p100pmsymmeorigin_data", s=[700, 594], p=100, pm='symmetric') show_images2(data=origin_data, main_title="s300p100pmsymme_data", s=300, p=100, pm='symmetric')
以上是pytorch中的隨機克羅普(1)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

多態是Python面向對象編程中的核心概念,指“一種接口,多種實現”,允許統一處理不同類型的對象。 1.多態通過方法重寫實現,子類可重新定義父類方法,如Animal類的speak()方法在Dog和Cat子類中有不同實現。 2.多態的實際用途包括簡化代碼結構、增強可擴展性,例如圖形繪製程序中統一調用draw()方法,或遊戲開發中處理不同角色的共同行為。 3.Python實現多態需滿足:父類定義方法,子類重寫該方法,但不要求繼承同一父類,只要對象實現相同方法即可,這稱為“鴨子類型”。 4.注意事項包括保持方

參數(parameters)是定義函數時的佔位符,而傳參(arguments)是調用時傳入的具體值。 1.位置參數需按順序傳遞,順序錯誤會導致結果錯誤;2.關鍵字參數通過參數名指定,可改變順序且提高可讀性;3.默認參數值在定義時賦值,避免重複代碼,但應避免使用可變對像作為默認值;4.args和*kwargs可處理不定數量的參數,適用於通用接口或裝飾器,但應謹慎使用以保持可讀性。

迭代器是實現__iter__()和__next__()方法的對象,生成器是簡化版的迭代器,通過yield關鍵字自動實現這些方法。 1.迭代器每次調用next()返回一個元素,無更多元素時拋出StopIteration異常。 2.生成器通過函數定義,使用yield按需生成數據,節省內存且支持無限序列。 3.處理已有集合時用迭代器,動態生成大數據或需惰性求值時用生成器,如讀取大文件時逐行加載。注意:列表等可迭代對像不是迭代器,迭代器到盡頭後需重新創建,生成器只能遍歷一次。

類方法是Python中通過@classmethod裝飾器定義的方法,其第一個參數為類本身(cls),用於訪問或修改類狀態。它可通過類或實例調用,影響的是整個類而非特定實例;例如在Person類中,show_count()方法統計創建的對像數量;定義類方法時需使用@classmethod裝飾器並將首參命名為cls,如change_var(new_value)方法可修改類變量;類方法與實例方法(self參數)、靜態方法(無自動參數)不同,適用於工廠方法、替代構造函數及管理類變量等場景;常見用途包括從

處理API認證的關鍵在於理解並正確使用認證方式。 1.APIKey是最簡單的認證方式,通常放在請求頭或URL參數中;2.BasicAuth使用用戶名和密碼進行Base64編碼傳輸,適合內部系統;3.OAuth2需先通過client_id和client_secret獲取Token,再在請求頭中帶上BearerToken;4.為應對Token過期,可封裝Token管理類自動刷新Token;總之,根據文檔選擇合適方式,並安全存儲密鑰信息是關鍵。

Python的magicmethods(或稱dunder方法)是用於定義對象行為的特殊方法,它們以雙下劃線開頭和結尾。 1.它們使對象能夠響應內置操作,如加法、比較、字符串表示等;2.常見用例包括對像初始化與表示(__init__、__repr__、__str__)、算術運算(__add__、__sub__、__mul__)及比較運算(__eq__、__lt__);3.使用時應確保其行為符合預期,例如__repr__應返回可重構對象的表達式,算術方法應返回新實例;4.應避免過度使用或以令人困惑的方

Python的垃圾回收機制通過引用計數和周期性垃圾收集來自動管理內存。其核心方法是引用計數,當對象的引用數為零時立即釋放內存;但無法處理循環引用,因此引入了垃圾收集模塊(gc)來檢測並清理循環。垃圾回收通常在程序運行中引用計數減少、分配與釋放差值超過閾值或手動調用gc.collect()時觸發。用戶可通過gc.disable()關閉自動回收、gc.collect()手動執行、gc.set_threshold()調整閾值以實現控制。並非所有對像都參與循環回收,如不包含引用的對象由引用計數處理,內置

Pythonmanagesmemoryautomaticallyusingreferencecountingandagarbagecollector.Referencecountingtrackshowmanyvariablesrefertoanobject,andwhenthecountreacheszero,thememoryisfreed.However,itcannothandlecircularreferences,wheretwoobjectsrefertoeachotherbuta
