목록2024/05 (8)
플로라도의 data workout
판다스 데이터프레임의 인덱싱은 크게 세가지 방법이 있다. 1. ' [ ] ' 연산자2. iloc '위치 기반 선택'3. loc '라벨 기반 선택' 1. '[ ]' 연산자 @ka : 칼럼지정 연산자, 행 슬라이싱, 불리언 인덱싱데이터프레임에 ' [ ] ' 연산자를 적용, df ['column_name'] 와 같이 사용하는 것은 기본적으로 여느 다른 클래스와 마찬가지로 매직 메서드인 '__getitem__'에 의해 구현되어 있다. - 열 선택 df['column_name'] - 슬라이싱을 통한 행 선택df[2:5] 이때 유의점1은 df[3] 과 같이 단일 정수값으로 행을 선택하려고 들면 에러가 난다는 점이다. 데이터 프레임에서 ' [ ] ' 연산자는 '칼럼 지정 연산자'로 작동하며, 열 이름 자체가 '..
딥러닝에서 대규모의 모델을 다룰수록 scratch부터 모델을 학습시키는 경우는 잘 없고,기존의 대규모 데이터셋과 GPU Cluster로부터 사전에 학습된 pre-trained 모델을 활용하여 모델링을 하는 경우가 대부분이다. 그 활용 방법이 바로 Transfer Learning과 Fine-tuning이다.Transfer Learning과 Fine tuning은 서로 연관되어 있지만 사용 방식과 사용 맥락에 약간의 차이가 있다. Transfer Learning(전이학습)전이학습(Transfer Learning)은 한 도메인 또는 다른 task에서 학습된 모델을 취하여 다른 도메인이나 task에 적용하는 방식이다.예를 들어, 이미지넷으로 사전 훈련된 모델(ImageNet 21k분류를 위한 모델)을 새로운 ..
이번 강은 Attention에 대해서 다룬다. 지난 시간에는 새로운 구조의 NeuralNet인 RNN에 대해서 배웠다. RNN은 서로 다른 시퀀스의 벡터를 다룰 수 있는 강력한 신경망 구조였다.MLP와 같은 일반적인 Feedforward neural network(순방향 신경망)에서 Recurrent Neural Networks(순환 신경망)로 오면서 우리는 machine translation, image captioning과 같은 다양한 테스크를 해결할 수 있게 되었다. 지난 시간의 내용을 다시 한번 떠올려보자.sequence to sequence with RNN의 문제는 무엇이었을까RNN은 $x_1$에서 $x_T$까지의 sequence를 입력으로 받는다. output은 $y_1$에서 $y_{T^`..
딥러닝 모델들의 논문을 보다 보면 벤치마크 표에서 제시되는 것이 크게 네가지가 있는데, 학습 방법및 하이퍼파라미터 튜닝과 모델 버전에 따른(1)모델의 이름,그리고 task에 해당하는 성능지표를 통해 측정한 (2)정확도와(3)파라미터의 갯수, (4)FLOPs 가 그것이다. 모델의 정확도와 효율성은 일반적으로 trade-off관계에 있기 때문에, 정확도 뿐만 아니라 파라미터의 갯수와 FLOPs로 모델의 효율성을 같이 나타내려고 한다.이 때 모델의 효율성은 파라미터의 갯수와 FLOPs 두가지로 나타내게 되는데 파라미터의 갯수는 모델의 가중치(weight)와 bias term을 모두 포함한 수를 의미하고, 대게는 모델의 capacity를 의미하며 모델의 학습관점에서는 VRAM과 직접적으로 연관되는 부분이다. ..
파이토치에서 torch.nn.functional모듈은 통상 F로 임포트하여 사용되곤하는데이때 nn모듈의 클래스들과 비교가 된다. 예를 들면, F.avg_pool2d와 nn.AvgPool2d는 정확히 동일한 기능을 제공하지만, 두 함수의 사용 방법과 적용하는 컨텍스트에는 차이가 있다. 1.F.avg_pool2d- 모듈 : torch.nn.functional - 특징 : 1. 매 호출마다 풀링 파라미터를 지정해야 하므로, 동적인 풀링 사이즈나 조건에 따른 풀링을 적용해야 할때 사용한다. 2. 함수형 API를 사용하므로, 코드에서 '절차적' 접근을할때 적합하다. 3. 상태가 없는 절차적 함수이므로 nn.Sequential의 구성요소로 추가될 수 없다. - 사용 예import torchimport torch..