برنامه نویسی
RandomInvert در Pytorch – Community Dev

برای من یک قهوه بخر
*یادداشت ها:
RandomInvert () می تواند به طور تصادفی یک تصویر را مطابق شکل زیر معکوس کند:
*یادداشت ها:
- اولین استدلال برای اولیه سازی است
p
(پیش فرض اختیاری:0.5
نوع:int
یاfloat
): *یادداشت ها:- این احتمال وجود دارد که یک تصویر وارونه شده باشد یا خیر.
- باید باشد
0 <= x <= 1
بشر
- استدلال اول است
img
(نوع مورد نیاز:PIL Image
یاtensor
(int
)): *یادداشت ها:- تانسور باید 2D یا 3D باشد.
- استفاده نکنید
img=
بشر
-
v2
توصیه می شود مطابق V1 یا V2 استفاده شود؟ از کدام یک باید استفاده کنم؟
from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import RandomInvert
randominvert = RandomInvert()
randominvert = RandomInvert(p=0.5)
randominvert
# RandomInvert(p=0.5)
randominvert.p
# 0.5
origin_data = OxfordIIITPet(
root="data",
transform=None
)
p0_data = OxfordIIITPet(
root="data",
transform=RandomInvert(p=0)
)
p05_data = OxfordIIITPet(
root="data",
transform=RandomInvert(p=0.5)
)
p1_data = OxfordIIITPet(
root="data",
transform=RandomInvert(p=1)
)
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, (im, _) in zip(range(1, 6), data):
plt.subplot(1, 5, i)
plt.imshow(X=im)
plt.xticks(ticks=[])
plt.yticks(ticks=[])
plt.tight_layout()
plt.show()
show_images1(data=origin_data, main_title="origin_data")
print()
show_images1(data=p0_data, main_title="p0_data")
show_images1(data=p0_data, main_title="p0_data")
show_images1(data=p0_data, main_title="p0_data")
print()
show_images1(data=p05_data, main_title="p05_data")
show_images1(data=p05_data, main_title="p05_data")
show_images1(data=p05_data, main_title="p05_data")
print()
show_images1(data=p1_data, main_title="p1_data")
show_images1(data=p1_data, main_title="p1_data")
show_images1(data=p1_data, main_title="p1_data")
# ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓
def show_images2(data, main_title=None, prob=0):
plt.figure(figsize=[10, 5])
plt.suptitle(t=main_title, y=0.8, fontsize=14)
for i, (im, _) in zip(range(1, 6), data):
plt.subplot(1, 5, i)
ri = RandomInvert(p=prob)
plt.imshow(X=ri(im))
plt.xticks(ticks=[])
plt.yticks(ticks=[])
plt.tight_layout()
plt.show()
show_images2(data=origin_data, main_title="origin_data")
print()
show_images2(data=origin_data, main_title="p0_data", prob=0)
show_images2(data=origin_data, main_title="p0_data", prob=0)
show_images2(data=origin_data, main_title="p0_data", prob=0)
print()
show_images2(data=origin_data, main_title="p05_data", prob=0.5)
show_images2(data=origin_data, main_title="p05_data", prob=0.5)
show_images2(data=origin_data, main_title="p05_data", prob=0.5)
print()
show_images2(data=origin_data, main_title="p1_data", prob=1)
show_images2(data=origin_data, main_title="p1_data", prob=1)
show_images2(data=origin_data, main_title="p1_data", prob=1)