'AI 구현' 카테고리의 글 목록
본문 바로가기

AI 구현12

npz compressed를 이용한 데이터 로드 속도 개선 (Feat. 학습 속도를 부스팅하기 위한 다양한 시도들) 목차1. 학습 속도가 너무 느려요... GPU Util이 안나와요...😭2. npz를 npz compressed로 바꿔서 저장해보자!    2-1. npz를 불러와서 npz compressed로 저장하는 코드    2-2. npz vs npz compressed 로딩 속도 비교3. 학습 속도 개선을 위해 시도해 볼 만한 방법들1. 학습 속도가 너무 느려요... GPU Util이 안나와요...😭현재 연구중인 베이스라인 모델이 DDP (Distributed Data Parallel)를 사용하고 있음에도 불구하고, training 속도가 느린 문제가 있었습니다. 학습 속도를 개선하기 위해 여러 가지 방법을 시도해보았지만, GPU Util이 제대로 나오지도 않고 epoch 하나 도는데 무려 10시간이 걸려 .. 2024. 12. 13.
ZOH (Zero-order hold):Mamba의 discretization rule 아래 논문으로 Mamba architecture를 처음 공부하면서 맞닥뜨렸던 생소한 개념인 ZOH에 대해 정리해보려고 합니다. State space model (SSM)과 마찬가지로, ZOH (Zero-order hold)도 제어 이론에 기반하여 적용된 기법입니다. ※ notation이 다소 정확하지 않을 수 있습니다.. 잘못된 부분이 있다면 언제든 댓글 남겨주세요.  [논문 정리] RawBMamba: End-to-End Bidirectional State Space Model for Audio Deepfake Detection목차0. Summary1. Background2. Proposed method    2-1. Short-range feature representation    2-2. Bidir.. 2024. 10. 17.
[Pytorch] view, reshape, permute 함수 : 차원 재구성 텐서의 크기를 바꾸는 view, reshape 함수와 차원 순서를 바꾸는  reshape 함수에 대해 알아봅시다. view 함수view는 텐서의 크기를 바꾸는 함수로, 기존의 데이터와 같은 메모리 공간을 공유하고 contigious 할 때 사용 가능합니다. (아닌 경우 에러 발생)  import torchx = torch.randn(4,4)y = x.view(2,2,4)z = x.view(-1,8)print(x.size())print(y.size())print(z.size())"""[출력]torch.Size([4, 4])torch.Size([2, 2, 4])torch.Size([2, 8])""" reshape 함수reshape는 view 처럼 텐서의 크기를 바꿔주는 함수입니다. 약간의 다른점이 있다면, .. 2024. 9. 8.
[Pytorch] gather 함수 : index에 따라 값을 수집/추출 주어진 index 텐서에 따라 input 텐서의 값을 추출하여 새로운 텐서를 생성하는 gather 함수에 대해 알아봅시다. gather 함수torch.gather(input, dim, index, *, sparse_grad=False, out=None) → Tensor[Parameters]* input: 입력 텐서* dim: gather 사용 시, 기준이 되는 축 (0이면 행 방향, 1이면 열 방향)* index: 특정 값을 값들을 수집할 위치를 지정하는 index 텐서(input tensor와 index tensor의 dimension이 동일해야함)  1) dim=0 (행 방향)인 경우 t = torch.tensor([[1, 2], [3, 4]])index = torch.tensor([[0, 0], [.. 2024. 9. 3.
[Pytorch] scatter_ 함수 : index에 따라 특정 위치 값을 직접 삽입/수정 주어진 index에 따라 원본 텐서의 특정 위치에 값을 직접 수정하는 scatter_ 함수에 대해 알아봅시다. torch.scatter 함수와 torch.scatter_ 함수 다른점torch.scatter 함수 : 원본 텐서를 수정하지 않고, 새로운 텐서를 반환 (out-of-place)torch.scatter_ 함수 : 원본 텐서를 직접 수정함 (in-place) torch.scatter_ 함수Tensor.scatter_(dim, index, src, *, reduce=None) → Tensor[Parameters]* dim: scatter 사용 시, 기준이 되는 축 (0이면 행 방향, 1이면 열 방향)* index: element들의 index, 숫자를 어떤식으로 옮길지 결정하는 규칙* src: 옮길.. 2024. 9. 3.
[Pytorch] broadcast_tensors 함수 : 텐서 확장 및 연산 브로드캐스팅 기능을 이용해 두 텐서를 같은 크기로 확장하는 broadcast_tensors 함수에 대해 알아봅시다. broadcast_tensors 함수브로드캐스팅은 서로 다른 크기의 텐서를 같은 크기로 확장하여 연산을 가능하게 합니다. 이 함수를 쓰려면, 아래 조건을 만족해야 합니다. [브로드캐스팅 규칙]비교하는 두 차원 크기가 같거나 두 차원 중 하나의 크기가 1이어야 함 * 브로드캐스팅 O x = torch.rand(3,6)y = torch.rand(1,6)a,b = torch.broadcast_tensors(x,y)print(a.size())print(b.size())"""[출력]torch.Size([3, 6])torch.Size([3, 6])"""  * 브로드캐스팅 X x = torch.rand.. 2024. 9. 3.