Loading...
2023. 11. 7. 12:21

pytorch의 tensor를 plt.imshow()했더니 TypeError: Invalid shape for image data

https://velog.io/@olxtar/Torchvision-PIL-torch.Tensor-PIL-Image [Torchvision / PIL] torch.Tensor PIL Image PIL/Numpy Array/Torch Tensor 이미지끼리 변환하기 / torchvision.transforms.ToTensor() / torchvision.transforms.ToPILImage velog.io PIL이나 opencv로 이미지를 열때는 (height, width, channel) 순으로 shape를 가지게 된다 img = Image.open('/content/karina.jpeg') img2 = cv2.imread('/content/karina.jpeg') print(np.array(img).s..

2023. 9. 13. 04:06

구현하면서 배우는 weight initialization(가중치 초기화) 중요성

가중치 초기화(weight initialization)은 모델을 만들고 훈련하기 전에 한번 수행을 한다 좋은 가중치 초기화는 모델이 optimal point에 더 빠르게 다가갈 수 있게 한다 1. 상수 가중치(all zero or one) occam's razor(경제성의 원리)에 따르면 모든 가중치 값을 동일한 상수로 가정하는게 최적의 솔루션일 수 있다 모든 weight가 동일하다면, 각 layer의 뉴런이 동일한 output을 내놓기 때문에 모델이 어떤 weight를 바꿔야 최적해를 찾는지 결정하기 어려워서 training을 어렵게 한다 FashionMNIST 데이터셋에 동일한 MLP 모델을 training하는데 가중치를 모두 0으로 초기화하는거랑 1로 초기화하면... 2. random weight ..

2023. 9. 13. 00:34

구현하면서 배우는 batch normalization에 대한 몇가지 핵심사항

면접에서 batch normalization이 training하기 전에 실행하냐? training하면서 실행하냐? 이런걸 물어봤는데 batch normalization에 대해 몇가지를 배워보자 1. 핵심 아이디어 The idea is that, instead of just normalizing the inputs to the network, we normalize the inputs to layers within the network. network에 대한 input을 normalizing하는 것 대신에 network 내부의 layer에 대한 input을 normalizing함 It's called batch normalization because during training, we normalize e..

2023. 5. 8. 03:43

pytorch - flatten과 averaging pooling, training 방법 기본기, layer 구성법

1. flatten vs. average pooling flatten은 feature map을 벡터로 적절한 순서대로 쌓고 import torch t = torch.tensor([[[1,2], [3,4]], [[5, 6], [7,8]]]) print(torch.flatten(t)) tensor([1, 2, 3, 4, 5, 6, 7, 8]) print(torch.flatten(t, start_dim = 1)) tensor([[1, 2, 3, 4], [5, 6, 7, 8]]) feature map이 [1,2,3,4]랑 [5,6,7,8]인데 이 둘을 2가지 방식으로 flatten시켰다? 이건 그림 안그려봐도 결과 코드가 이해가 될듯.. [1,2,3,4]랑 [5,6,7,8]을 적절하게 쌓았네 ----------..

2023. 5. 4. 02:28

pretrained model & transfer learning에 대해 제대로 이해하기

0. computer vision은 왜 발전했을까 YOLO는 실시간으로 object detection을 가능하게 만들었다 길, 사람, 자동차 등을 segmentation하여 더욱 수준 높은 self driving을 구현하려고 노력하고 있다 이것은 어떻게 가능했을까? ImageNet이라는 대형 dataset이 등장한 것이 엄청난 영향력을 행사했다고 말할 수 있다 고도화된 알고리즘이나 모델이 아닌 약 1400만개의 image와 20000개의 category를 보유한 단순한 대용량의 대형 dataset 실생활에서 발견할 수 있는 다양한 variance들을 다 충족할 수 있는 엄청 큰 대형 dataset 그래서 획기적인 알고리즘 개발이 물론 중요하지만 ImageNet에 검증을 못하면 그런 알고리즘도 실생활에 쓸..

2023. 5. 1. 03:25

pytorch - 모델의 parameter 제대로 이해하기 재활치료

1. model이 가지는 parameter 확인하기 model에 정의된 modules가, 가지고 있는 forward 계산에 쓰일 parameter tensor가 저장되어 있음 .state_dict(), .parameters() 함수를 이용하여 저장된 parameter를 볼 수 있음 .state_dict()는 무엇이 무엇의 parameter인지 확인 가능 .parameters()는 그냥 parameter를 출력해서 뭐가 뭔지 확인은 어렵다 parameter는 weight와 bias로 이루어져있다는 것을 알 수 있다 2. parameter tensor parameter는 tensor 기반의 class 그냥 tensor가 있고, grad를 가질 수 있는 parameter tensor라는 것이 있는거임.. 이거..