강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

유영재님의 프로필 이미지
유영재

작성한 질문수

[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지

torchvision transforms에서 왜 cuda를 붙였을 때 연산이 잘 안나오나요?

작성

·

338

0

안녕하세요 gaussianblur 이미지 augmentation을 적용할 때, 이미지에 cuda에 붙였을 때와 안붙였을 때 수행시간 차이가 발생하는데, 이유가 있을까요?

아래 코드에서는 0.001s, 0.001s씩 걸리는데

import torch
import torch.nn as nn
import torch.nn.functional as F
import torchvision
from torchvision import transforms
import time
import albumentations as A
import numpy as np

sample_img = torch.randn((1, 3, 224, 224), dtype=torch.float32)
sample_img2 = torch.randn((3, 224, 224), dtype=torch.float32).cuda()

gaussian = transforms.GaussianBlur(5)
since = time.time()
gaussian_img = gaussian(sample_img)
print(f'time: {time.time()-since:.3f}s')

since = time.time()
a_gaussian = A.GaussianBlur()
gaussian_img2 = a_gaussian(image=sample_img2.permute(1, 2, 0).detach().cpu().numpy())['image']
print(f'time: {time.time()-since:.3f}s')

위 코드에서 sample_img에 cuda를 붙이면 오히려 시간이 0.4초로 늘어나게 되네요

답변 1

0

딥러닝호형님의 프로필 이미지
딥러닝호형
지식공유자

안녕하세요!

이유는 정확히 모르겠네요.. 0.4초면 꽤 많이 나는데요?

여러 번 시도하여 동일한 차이가 발생하는지 보시고요.

지금 보여주신 식을 보면 위 아래가 완전히 같지 않고 지금 한 번에 돌리신 것 같은데

시간 차이 계산이 중요하다면 동일한 조건에 하나 씩 여러 번 돌려 보면서 경향을 보시면 될 것 같아요.

유영재님의 프로필 이미지
유영재

작성한 질문수

질문하기