Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TorchVision 객체 검출 미세조정(Finetuning) 튜토리얼에 제시된 소스코드 에러 #792

Open
yundaehyuck opened this issue Oct 15, 2023 · 0 comments

Comments

@yundaehyuck
Copy link
Contributor

문서 URL

수정이 필요한 URL을 남겨주세요. (예. https://tutorials.pytorch.kr/beginner/basics/intro.html)

변경 사항

(1)어떤 단어 / 문장 / 내용이 (2)어떻게 변경되어야 한다고 생각하세요?

문서 초반에

class PennFudanDataset(torch.utils.data.Dataset)을 만드는 소스코드에서

    # 모든 것을 torch.Tensor 타입으로 변환합니다
    boxes = torch.as_tensor(boxes, dtype=torch.float32)
    # 객체 종류는 한 종류만 존재합니다(역자주: 예제에서는 사람만이 대상입니다)
    labels = torch.ones((num_objs,), dtype=torch.int64)
    masks = torch.as_tensor(masks, dtype=torch.uint8)

    image_id = torch.tensor([idx])
    area = (boxes[:, 3] - boxes[:, 1]) * (boxes[:, 2] - boxes[:, 0])
    # 모든 인스턴스는 군중(crowd) 상태가 아님을 가정합니다
    iscrowd = torch.zeros((num_objs,), dtype=torch.int64)

image_id = torch.tensor([idx])가 image_id = idx로 바뀌어야 합니다.

이 부분으로 인해 마지막 training시

# 10 에포크만큼 학습해봅시다
num_epochs = 10

for epoch in range(num_epochs):
    # 1 에포크동안 학습하고, 10회 마다 출력합니다
    train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq=10)
    # 학습률을 업데이트 합니다
    lr_scheduler.step()
    # 테스트 데이터셋에서 평가를 합니다
    evaluate(model, data_loader_test, device=device)

print("That's it!")

AssertionError: Results do not correspond to current coco set 에러가 납니다.

image_id = idx으로 고쳤을때 해결됨을 확인했습니다.

문서 중간에 transform을 만드는 코드에서

import transforms as T

def get_transform(train):
    transforms = []
    transforms.append(T.PILToTensor())
    transforms.append(T.ConvertImageDtype(torch.float))
    if train:
        # (역자주: 학습시 50% 확률로 학습 영상을 좌우 반전 변환합니다)
        transforms.append(T.RandomHorizontalFlip(0.5))
    return T.Compose(transforms)

transforms.append(T.ConvertImageDtype(torch.float))이 transforms.append(T.ToDtype(torch.float, scale = True))으로 바뀌어야합니다.

T.ConvertImageDtype(torch.float)이 존재하지 않는다는 attribute error가 납니다.

추가 정보

위와 같이 생각하신 이유 또는 다른 참고할 정보가 있다면 알려주세요.

image

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant