tutorials-kr
tutorials-kr copied to clipboard
TorchVision 객체 검출 미세조정(Finetuning) 튜토리얼에 제시된 소스코드 에러
문서 URL
수정이 필요한 URL을 남겨주세요. (예. https://tutorials.pytorch.kr/beginner/basics/intro.html)
- URL: https://tutorials.pytorch.kr/intermediate/torchvision_tutorial.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가 납니다.
추가 정보
위와 같이 생각하신 이유 또는 다른 참고할 정보가 있다면 알려주세요.