繁体   English   中英

为什么我使用 random.randint 生成相同的数字?

[英]Why am I generating the same number using random.randint?

所以我有这个 function 来生成用于语义分割的图像增强,我希望得到具有相应图像掩码的随机图像。

i = 1  # variable to iterate till images_to_generate

while i <= images_to_generate:
    number = random.randint(0, len(images))  # PIck a number to select an image & mask
    image = images[number]
    mask = masks[number]
    # print(image, mask)
    # image=random.choice(images) #Randomly select an image name
    original_image = io.imread(image)
    original_mask = io.imread(mask)
    transformed_image = None
    transformed_mask = None
    #     print(i)
    n = 0  # variable to iterate till number of transformation to apply
    transformation_count = random.randint(0, len(transformations))  # choose random number of transformation to apply on the image
    print(number)
    print(transformation_count)
    while n <= transformation_count:
        key = random.choice(list(transformations))  # randomly choosing method to call
        seed = random.randint(1,100)  # Generate seed to supply transformation functions.
        transformed_image = transformations[key](original_image, seed)
        transformed_mask = transformations[key](original_mask, seed)
        n = n + 1

    new_image_path = "%s/augmented_image_%s.jpg" % (img_augmented_path, i)
    new_mask_path = "%s/augmented_mask_%s.png" % (msk_augmented_path, i)  # Do not save as JPG
    io.imsave(new_image_path, transformed_image)
    io.imsave(new_mask_path, transformed_mask)
    i = i + 1

但我一直得到相同的图像编号和相同的转换

为什么会这样?

这是因为您的seed = random.seed(1,100)负责自定义随机生成器的起始编号。 因此,您将始终获得第一个相同的“随机”数字。

在此处查看完整文档: https://www.w3schools.com/python/ref_random_seed.asp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM