프로그래밍을 하다보면 Heap과 Stack 자료구조를 볼 수 있는데, 이 둘의 차이점을 알아보고자 정리한다. 1. Stack스텍은 너무나 자주사용하여 익숙한 자료구조일 것이다. FILO(First In Last Out) 형식을 따르며 주로 재귀함수에서 사용한 다는 점도 너무나 잘 알려진 사실이다. 추가적으로 메모리 부분을 살펴봐야 한다.Stack의 경우 정적 메모리에 할당되며, 컴파일 시 해당 크기가 결정되어 고정된 사이즈다. 이러다보니, OverFlow , UnderFlow가 발생할 수 있다. ( 정적 메모리 같은 경우는 로컬 변수가 저장되는 곳이다. 추가로, 함수를 호출하면, Stack구조에 쌓이게 되고, 해당 함수가 끝나면 Stack에서 pop되어 메모리가 자동으로 해제된다.) 스택의 구조는 상당..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bMXoV0/btrUGHs3oGC/pKWYr8ZjDEaVoWTikbqK31/img.png)
tensor뿐만 아니라 pandas에서 concat을 할때 어떤식으로 진행할지를 결정하게 될때 사용하는게 dim 이라는 파라미터이다. 예제로 봐보자. x,y,z를 stack하는 코드이다. stack을 진행할때, 어떤 차원을 기준으로 stack을 할지 명시해줘야한다. defalut는 0으로 dim = 0이라는 것과 같은 의미이다. dim = 0일때 결과를 살펴보면, 행으로 stack한 것을 볼 수 있다. 반대로, dim= 1 일때를 살펴보면, '열'로 stack을 진행한 것을 볼 수 있다. 추가적으로 설명해보자면, torch.Size([A,B,C,D,E])와 같은 5차원의 tensor가 존재할 경우, A부터 0, B는 1 , C는 2, D는 3, E는 4를 뜻한다. 이걸 알고 원하는 기준으로 stack을 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cj7I68/btrUL6557qd/8HNVr6teT7wmOcfrXWbEL1/img.png)
pytorch tensor를 이용하다보면, a,b,c tensor를 하나로 합치는 경우가 필요하다. 그때 사용하는 것은 concat, stack 함수를 이용해서 사용하면 될텐데... 조금의 차이가 존재한다. 예시를 통해 정리해보고자 한다. 1. concat - pandas를 자주 사용하는 개발자들은 pd.concat을 종종 사용할 것이다. 이때 concat이 torch에도 같다고 생각하면 된다. 한마디로 정리하자면, concat은 기존 shape을 유지한다. 예제를 보자. x = [[1,2], [3,4]] / y = [[4,5],[6,7]] 를 선언하였다. shape은 (2,2) 이다. shape을 잘 기억하길 바란다. 단순 concat을 진행하게 되면, defalut = dim 0 이므로 세번째 처럼 ..
- Total
- Today
- Yesterday
- 깃
- 욜로
- GNN
- c3k2
- 뜯어보기
- 정리
- yolov11
- V11
- CNN
- YOLOv8
- 이미지
- python
- 어탠션
- 초보자
- 자바
- github
- docker
- 디텍션
- Tree
- 알고리즘
- 티스토리챌린지
- LLM
- 오블완
- GIT
- 도커
- YOLO
- DeepLearning
- 딥러닝
- java
- 오류
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |