gpt4 book ai didi

python - 如何进行自定义 torchvision 转换?

转载 作者:行者123 更新时间:2023-12-05 05:58:39 25 4
gpt4 key购买 nike

我有一个以 20% 的几率改变图像像素的函数,但不确定如何让它在 transforms.Compose([]) 中工作。请帮忙!

def random_t(img):
im = Image.open(img)
pixelMap = im.load()
pixelMap_list = []

for i in range(im.size[0]):
for j in range(im.size[1]):
randNum = random.uniform(0, 1)
if randNum < 0.2: # 20% chance of pixel change
pixelMap[i, j] = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
pixelMap_list.append(pixelMap[i, j])
else:
pixelMap[i, j] = pixelMap[i, j]

return im

我认为它应该有这样的格式..这是来自 pytorch 库。

class custom_augmentation(object):
def __init__(self, p):
self.p = p # it should be the probability of random pixel

def __call__(self, img):
return None # Not sure how to make random_t in here

def __repr__(self):
return "custom augmentation"

固定代码:

class custom_augmentation(object):
def __init__(self, p=0.5):
self.p = p

def __call__(self, img):
pixelMap = img.load()
for i in range(img.size[0]):
for j in range(img.size[1]):
if torch.rand(1) < self.p:
pixelMap[i, j] = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
else:
pixelMap[i, j] = pixelMap[i, j]

return img # Not sure how to make random_t in here

def __repr__(self):
return "custom augmentation"

最佳答案

您需要对 img 进行操作,然后将其返回。有关如何创建自定义转换的一个很好的示例,只需查看如何创建正常的 torchvision 转换,就像这里一样:

这是 torchvision.transforms 的 github有他们的代码。查看像 RandomHorizo​​ntalFlip() 这样的变换,了解如何引入变换发生的概率等。

https://github.com/pytorch/vision/blob/master/torchvision/transforms/transforms.py

关于python - 如何进行自定义 torchvision 转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68415926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com