본문 바로가기

전체 글85

[Paper review] Attention Is All You Need(Transformer, 2017) 이번에 리뷰할 논문은 자연어 처리를 시작으로 여러 가지 task에 적용가능한 Attention만을 사용하는 구조를 고안한 트랜스포머이다. 논문리뷰시 architecture쪽을 맡아 이 부분을 집중적으로 리뷰하겠다. Abstract 당시 통역 task는 encoder로 context vector로 만든 뒤 decoder를 이용해 이를 번역하는 과정이 메인이었으며 이에 Attention mechanism을 이용하여 추가적으로 여러 시퀀스의 hidden state에서 정보를 뽑거나 넣어주는 방식의 논문이 나오고 있었다. 하지만 Transformer는 RNN, CNN 구조 없이 오직 Attention mechanism만을 활용하여 연산을 병렬적으로 수행하게 되면서 기존 sota 모델들보다 더 적은 훈련시간 안에.. 2023. 3. 30.
[Pytorch]Datasets and dataloaders 텐서플로우 역시 tf.dataset을 통한 데이터셋 생성 후 이터레이팅 방식으로 모델에 데이터를 먹일 수 있지만 대게 local에서 가져와서 직접 전처리 후 모델에 통째로 먹어주는 경우가 많았다. 하지만 Pytorch는 dataset과 dataloaders를 사용하는게 더 관용적인 것 같으며 사용법 역시 간단했다. 이번에는 부캠에서 배운 daataset과 dataloader에 대한 설명과 어떤 식으로 활용될지에 대해 적어보겠다. 필자는 pytorch를 통해 scratch부터 데이터셋, 데이터로더를 제작한 적이 없음을 감안하고 틀린 부분이 있으면 과감히 말해주길 바란다. Dataset dataset은 pytorch에서 데이터를 모델어넣어주기전 미리 그에 대에 정의 및 처리해 주기 위하여 사용된다. Modu.. 2023. 3. 23.
[Pytorch]Autograd Module torch.nn.Module, forward Input, Output, Forward, Backward을 정의하는 Pytorch에서 모델을 만드는데 필요한 base class class MyLiner(nn.Module): def __init__(self, in_features, out_features, bias=True): super().__init__() self.in_features = in_features self.out_features = out_features self.weights = nn.Parameter( torch.randn(in_features, out_features)) self.bias = nn.Parameter(torch.randn(out_features)) def f.. 2023. 3. 19.
[Pytorch]Pytorch Basic 파이토치 모델을 가져와봐서 사용해 본 적은 몇 번 있지만 기초부터 배워보는 건 이번이 처음이다 ndarray, Tensorflow의 tensor와 다른 점 혹은 처음 보는 개념만 짚고 설명해 보겠다 Tensor 다차원 Array를 표현하는 Pytorch의 클래스이며 numpy의 ndarray, Tensorflow의 Tensor와 유사함 즉 ndarray에서 사용가능한 attribute를 대부분 이름 그대로 사용가능하다 a = torch.tensor([[1,2,3], [4,5,6]]) print(a.ndim, a.shape) 2 torch.Size([2, 3]) 텐서플로우의 텐서 혹은 ndarray와 차이점은 GPU에 올려두고 사용할 수 있다는 점 print(a.device) if torch.cuda.is.. 2023. 3. 19.
[부스트캠프]Pandas 정리 Pandas는 Numpy보다 처음보는 문법이 많았고 내용도 방대해 내용이 상당히 길다. 말이 정리지 사실상 강의 내용의 대부분을 따라쳐보고 출력을 확인하는 과정을 포스팅해보겠다. Dataframe functions loc, iloc loc은 dataframe의 index를 기반으로 iloc는 dataframe의 row기준 순서를 기반으로 행을 슬라이싱 or 인덱싱한다. 체크해야할 부분은 괄호로 ( )가 아니라 [ ]를 쓴다는 점! temp = [[i+1,i+2,i+3,i+4,i+5]for i in range(10)] df = pd.DataFrame(temp).T df.index = ["a","b","c","d","e"] prnt(df) print(df.loc["a"]) print(df.iloc[0]) 0.. 2023. 3. 18.
[부스트캠프]Numpy정리 Numpy, Pandas는 머신러닝, 딥러닝, 데이터사이언스를 배우는 개발자의 필수소양이라고 할 수 있다. 이번글에서는 부스트캠프 1주차 강의에서 배운 Numpy, Pandas활용법을 다뤄볼 것이다. 강의내용이 워낙 방대해서 이번에도 실용성 있거나 어려운 부분만 정리해 보겠다. Ndarray 생성 np.empty( ): ndarray생성함수 (zeros, ones와 동일한 문법이지만 Memory initialization이 일어나지 않음) np.empty(shape=(2, 2), dtype=int) np.empty(shape=(2, 2), dtype=int) array([[94570266456540, 0], [ 249108103216, 399431958577]]) array([[94570279784811.. 2023. 3. 18.
[부스트캠프]Python 정리 1주차 수업에서 부캠은 크게 Python, Data handling librarie, AI Math 3가지로 나누어 이루어졌다. 이후에도 비슷한 느낌으로 진행된다면 한 단원이 끝날때마다 모르는 부분만 간단히 정리해서 써보려고한다. 강의내용은 방대하지만 모르는 부분 중에서도 정규표현식, argparse같은 큰 내용은 나중에 직접 사용해보면서 하나의 글로 작성할 예정이다. Function type hints Python 3.5 이후 함수에 매개변수를 선언하면서 동시에 변수형 역시 지정해 줄 수 있다. def type_hint(var_name:str) -> str: return name type_hint를 통해 함수의 매개변수로 str을 받아 str형을 반환하는걸 알 수 있다. 하지만 위의 코드에서 str이 .. 2023. 3. 16.
부스트캠프 AI Tech 5기 코딩 테스트 및 합격 후기 대학원 석사를 포기한 다음 2~3주간 정말 온 힘을 다해 늘어져있었는데 친구들의 취업 소식을 듣고나서야 정신을 차리고 그때서야 매일 취업사이트를 뒤지며 코테를 준비했다. 그러던 중 당시 네이버 부스트캠프 지원시기가 약 한 달쯤 남았다는 걸 1월에 보았고 학사로 바로 들어가는거보다는 뭐라도 한 줄 더 채우고 가고 싶기도 했고 조금 더 깊게 공부하고 싶어 지원하였다. 부캠에 지원하는 과정은 크게 지원서 제출, 1차 테스트, 2차 코딩 테스트로 이루어져 있으며 전체적인 과정을 위와 같았다. 이 과정에 대한 리뷰와 합격 후기를 간단히 포스팅해보겠다. 지원서 제출 및 1차 테스트 지원서 제출은 크게 신경 쓸 부분이 많지 않았던 기억이 난다. 5기 기준 질문은 총 4개로 부스트캠프 AI Tech 교육은 어떤 이유로.. 2023. 3. 14.