https://www.facebook.com/groups/PyTorchKR/permalink/1156948337778179/
Park Jay
안녕하세요, 항상 좋은 글과 정보들 많이 얻고 배우고 있습니다. 현재 pyTorch와 TensorFlow를 병행하여 공부중인데, torch 공부중에 contiguous() 함수가 어떤 역할을 하는지 잘 감이 안와서 질문드립니다
www.facebook.com
김예철 contiguous함수는 텐서를 numpy같은 방식으로 메모리에 저장하는 방식을 말합니다 python에서 list타입의 변수는 크기가 가변적이고 어떤 타입의 원소이든 저장할수 있지만 독립적인 메모리에 저장되있어 접근속도가 느립니다 반면에 numpy는 윗분링크처럼 인접한 배열의 데이터는 인접한 메모리에 저장함으로써 접근속도나 transpose속도가 매우 빠르게됩니다
보통 view함수를 써서 텐서모양을 고칠때 contiguous형식이 요구되는데 view함수는 reshape나 resize와는 다르게 어떤 경우에도 메모리복사없이 이루어집니다 따라서 contiguous형식이 아닐때는 텐서모양을 고칠수 없게되고 런타임에러가 발생합니다
요약하자면 몇몇함수가 메모리 효율적인 연산을 위해 contiguous형식을 요구하니 그 함수를 사용할때만 contiguous형식으로 맞춰주면 될것같습니다
'프로그래밍 언어 > Pytorch' 카테고리의 다른 글
torch.nn.DataParallel (0) | 2020.07.31 |
---|---|
pytorch autograd 잘 정리된 곳 (0) | 2020.06.25 |
train() eval() 함수 쓰는 이유 in 파이토치 (0) | 2020.03.26 |
view(-1, x)가 도대체 무슨 의미지? (0) | 2020.03.04 |
구글코랩에서 파이토치 쓰려면 다음 명령어를 입력하세요 (0) | 2020.02.24 |