728x90
오늘은 코칭스터디 - 인공지능 기초 다지기에서 딥러닝 기초 다지기 파트를 들었다.
- 도커 환경설정
- python에서 tensor를 다루는 법을 간단하게 배웠다.
- gradient descent, SGD를 파이썬 코드 관점에서 간단하게 배웠다.
간단한 지식이었지만, pytorch에 대해서 기본 지식도 없는 채로 실무에서 코드를 봤을 때 막막했던 부분들이었는데, 이번 기회에 알아서 좋았기도 했고, 한편으로는 이런 기본 지식도 없는데 어떻게 일을 했을까 싶더라.
pytorch methods
Squeeze: dimension의 사이즈가 1인 부분을 날려버린다.
Unsqueeze: 내가 원하는 dimension에 1을 넣어준다. 그래서 반드시 쓸 때 꼭 dimension을 명시해야 한다.
참고: https://pytorch.org/docs/stable/generated/torch.unsqueeze.html
참조 코드
x = torch.tensor([1, 2, 3, 4])
torch.unsqueeze(x, 0)
# 출력: tensor([[ 1, 2, 3, 4]])
torch.unsqueeze(x, 1)
# 출력: tensor([[ 1],
# [ 2],
# [ 3],
# [ 4]])
Stacking: 새로운 차원을 추가하는 concat
ref: https://discuss.pytorch.kr/t/torch-cat-torch-stack/26/2
- torch.cat()은 주어진 차원을 기준으로 주어진 텐서들을 붙인다.(concatenate)
torch.stack()은 새로운 차원으로 주어진 텐서들을 붙인다. - 따라서, (3, 4)의 크기(shape)를 갖는 2개의 텐서 A와 B를 붙이는 경우,
torch.cat([A, B], dim=0)의 결과는 (6, 4)의 크기(shape)를 갖고,
torch.stack([A, B], dim=0)의 결과는 (2, 3, 4)의 크기 - 예시
t1 = torch.tensor([[1, 2], [3, 4]]) t2 = torch.tensor([[5, 6], [7, 8]]) # 각각 shape: (2, 2)
- torch.cat()
>>> torch.cat((t1, t2), dim=0) # dim=0인 경우 tensor([[1, 2], [3, 4], [5, 6], [7, 8]]) # shape: (4, 2)
>>> torch.cat((t1, t2), dim=1) # dim=1인 경우 tensor([[1, 2, 5, 6], [3, 4, 7, 8]]) # shape: (2, 4)
- torch.stack()
>>> torch.stack((t1, t2)) tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) # shape: (2, 2, 2)
여담으로 부스트코스에는 정말 좋은 강의들이 많은 것 같다. 무료임에도 불구하고 웬만한 유료 강의보다 괜찮다고 생각한다.
728x90
'진행중' 카테고리의 다른 글
[TIL] 2023-02-27 (0) | 2023.02.27 |
---|---|
[TIL]2023-02-21 (0) | 2023.02.21 |
[TIL] 2023-02-20 (0) | 2023.02.20 |
[TIL] 2023-02-17 (0) | 2023.02.17 |
[취업하자] 산업분석 따라하기 - 취린이 튜토리얼 (0) | 2021.08.29 |