이 사진을 가지고 python에서 albumentations을 사용하여 이미지를 바꿔보겠다. Normalize - 0 ~ 255사이인 pixel값을 "(img - mean * max_pixel_value) / (std * max_pixel_value)"의 공식을 이용하여 숫자를 작게 만든다. 장점 - 입력 값의 범위를 줄여, 학습에 빨리 수렴되도록 하고, 큰 입력값을 가진 특정 pixel의 특정 weight값이 커지는걸 방지 ColorJitter class albumentations.augmentations.transforms.ColorJitter (brightness=0.2, contrast=0.2, saturation=0.2, hue=0.2, always_apply=False, p=0.5) - 최대값..
torchtext의 버전이 바뀌면서.. 1년이 지난 지금.. '실전! 파이토치 딥러닝 프로젝트' 책의 모든 자연어 프로젝트가 모두 실행되지 않는다.. 물론 torchtext=0.5.0으로 다운그레이드하여 사용하면 되지만.. 비전이 올라갔는데 그럴순 없었다.. 죽은 코드를 한번 살려보기위해 torchtext를 정리해보고자 한다. * build_vocab_from_iterator > vocab을 만들어주는 함수 iterator(iterable) – 들어가야 하는 형식 min_freq(int) – 최소 빈도수 지정(최소 빈도수를 넘지 못하는 단어는 vocab에 넣지 않음) specials(str) – 스페셜 심볼. ,,와 같은 토큰들을 넣을 수 있음 special_first(bool)– 스페셜 심볼을 voca..
Cifa10 예제를 하고 있었는데 gpu를 사용하면 cpu보다 시간이 더 오래 걸리는 현상을 발견했다. 이유를 먼저 말하자면, 모델의 파라미터가 너무적기 때문이다. 모델의 파라미터 수가 너무 적으면 연산이 그만큼 적어지고, GPU를 사용하나 CPU를 사용하나 큰 차이가 없게된다. 또, 데이터를 to(device)로 gpu로 보내기때문에 그만큼 +@ 시간이 추가 되어 GPU의 시간이 더 오래 걸릴 수도 있다.. 그러니 혹시 gpu의 속도와 cpu의 속도가 비슷하다고 느껴진다면.. 모델의 복잡도를 한번 살펴보길 바란다.
바닐라 RNN은 길이가 길어지면 맨 앞쪽 내용이 점점 희석되는 단점이 있다. 이런 단점을 해결하기 위해 나온 모델이 LSTM / GRU 모델이다. 두 모델의 성능은 비슷하다고 하지만, GRU가 LSTM보다 연산 수가 적다고 한다. RNN의 원리는 직관적으로 이해가 가능하지만, LSTM 내부 구조는 직관적으로 복잡하기에 어떻게 사용하는지 정도만 알고 갔는데, 내부적으로 어떤 의미가 있는지 나름대로 해석하고 부여하여 정리해보고자 한다. https://wikidocs.net/60762 해당 링크의 설명을 참고하여 나름대로 의미를 부여해 보겠다. LSTM의 내부구조는 위의 그림과 같다. RNN과 다른점은 Cell state라는 것을 가지게 되는데, Cell state는 어떤 어떤 정보를 기억할 지 저장해 놓은 ..
딥러닝 분야를 접하면 반드시 접하게 되는 CNN, RNN이 있다. 비전과 자연어의 기본 모델이라, 어떻게 작동이 되는지 처음부터 잘 알아두면 큰 틀의 과정을 잘 이해할 수 있다고 생각된다. 여기서는 RNN에 대해 이야기 해보려고 한다. 어떻게 사용하는지 사용법을 알고싶다면, 빠르게 다른 포스팅을 찾는게 더 좋을 수 있다. 정말 어떻게 계산되는지 설명해보고자 한다. RNN의 이론을 보면 이와같은 이미지를 안볼수가 없다. 대부분 이런 이미지를 통해 RNN이라 설명한다. 하지만, 개인적으로 너무 설명이 생략된 것이 많다고 생각한다. 개인적으로 이런 그림이 보다 직관적이라 생각한다. A,B,C,D는 단어 embedding (vector)이다. 하지만, 보지 못한 것이 하나 있다. 맨 왼쪽 '0' 이라는 노드....
토치를 사용하다 보면 가장 많이 사용하게 되는게 tensor()이다. 그런데, 공부하다 보니 tensor()가 있고, Tensor()가 있는데 이 둘의 차이는 뭘까...?? 두 함수의 차이를 살펴보고 나름대로 정리를 해보려한다. https://stackoverflow.com/questions/51911749/what-is-the-difference-between-torch-tensor-and-torch-tensor What is the difference between torch.tensor and torch.Tensor? Since version 0.4.0, it is possible to use torch.tensor and torch.Tensor What is the difference? What ..
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을 ..
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
- 딥러닝
- 오블완
- 정리
- 백준
- 자바
- YOLO
- 욜로
- 디텍션
- python
- yolov11
- CNN
- 알고리즘
- 깃
- 도커
- java
- GIT
- 오류
- c3k2
- 티스토리챌린지
- 어탠션
- docker
- 초보자
- 뜯어보기
- github
- 이미지
- DeepLearning
- Tree
- GNN
- YOLOv8
- V11
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |