如何从imagenet的每一类中获取50个样本?

2024-04-26 14:36:33 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,我想要imagenet中每个类的50个样本。我想访问他们的URL。 我尝试使用这种方式访问每个类的示例: http://www.image-net.org/api/text/imagenet.synset.geturls?wnid=n01484850 但有些URL不起作用。你知道有什么快速的方法可以让我为每个类访问50个正确的URL吗? 对于每个类,我保存示例的.txt文件,然后使用下面的代码将示例提供给我的深度CNN,但由于一些URL不起作用,代码不起作用

代码:

f = open("C:\\Windows\\System32\\whiteshark.txt", "r")
number_of_lines = 50
for i in range(number_of_lines):
    line = f.readline()
    url, filename = (line, "3000.jpg")
    #print( urllib.URLopener().retrieve(url, filename))
    try:
        urllib.URLopener().retrieve(url, filename)
    except:
        urllib.request.urlretrieve(url, filename)
    input_image = Image.open(filename)
    img_t = transform(input_image)
    batch_t = torch.unsqueeze(img_t, 0)
    print(url)

Tags: of代码imagetxturl示例numberline
1条回答
网友
1楼 · 发布于 2024-04-26 14:36:33

一个解决方法是在文本中有更多带有url的行(比如1000行),并继续尝试访问每个url,直到达到50个示例。例如:

acquired_samples = 0
while acquired_samples < 50:
    ....
    try:
        urllib.URLopener().retrieve(url, filename)
        acquired_samples += 1
    ...

你明白了

免责声明:您可能需要采取一些预防措施,以免陷入无限循环

相关问题 更多 >