
대한민국이라는 나라 자체가 워낙 서로를 짓밟아야만 내가 우뚝서는 경험을 하게 만들어주는 나라라 헬조선이라는 말을 듣긴 한다.인스타그램이나 에브리타임, 디씨인사이드, 루리웹, 보배드림, 펨코, MLP파크 등 여러 커뮤니티를 가보면 본인은 평가절상하고 타인의 인생들은 평가절하해야만 살아갈 수 있는 사람들이 많이 있다. 위와같은 커뮤니티들이야 워낙 익명을 기반으로 다양한 사람들이 모이는 공간이니 그런 사람들이 필연적으로 많이 보일 수 밖에 없다고 생각한다.그런데 이보다 더 질나쁜 페미니즘 카페라던가, 악질 맘카페, 일베나 정신병 집합소인 블라인드 등 악질중의 악질 커뮤니티보다 더 심각한 느낌을 지울수가 없는, 가끔 어쩔 수 없이 정보를 위해 들어가지만 들어갈 때마다 기분잡치는 커뮤니티가 있으니 김박사넷이나 B..

torch의 tensor를 사용하다보면 종종 출력이 대부분 ...으로 생략되어 내부의 값 확인이 어려운 경우가 있다.이럴때는 torch.set_printoptions()함수를 사용하면 된다.torch.set_printoptions(threshold=1000, edgeitems=10, linewidth=150)1. threshold은 default값은 1000이다. 이 값을 늘리면 텐서에 표시해야 할 값들이 threshold개수보다 많아질 경우에만 ... 형태의 생략을 표시하도록 한다. 10000정도를 줘버리면 아마 모든 텐서가 표시될 공산이 크다. 그러나 모든 텐서가 또 전부 표현되면 생략된것만 못한수준의 가독성 떨어지는 텐서가 될 가능성도 높으니 알아서 경험적으로 조절해서 사용하면 된다.2. edgei..

torch.linalg.norm함수는 N차원의 벡터의 norm값을 구하는 함수다.다음과 같이 사용한다. torch.linalg.norm(input, ord=2, dim, keepdim)v = torch.tensor([ [[3.0, 4.0, 5.0], [1.0, 2.0, 4.0]], [[0.0, 5.0, 5.0], [6.0, 8.0, 5.0]], [[5.0, 3.0, 9.0], [2.0, 1.0, 1.0]]]) # shape = (3, 2, 3) [BS, L, D]#### dim=0 (BS) ####print(torch.linalg.norm(v, ord=2, dim=0, keepdim=True))# tensor([[[ 5.8310, 7.0711, 11.4455..

너 쌓여있잖아https://cryptosalamander.tistory.com/186 [Python / Linux] GPU 메모리 비우기, 프로세스 전부 종료하기GPU 메모리 비우기, 프로세스 전부 종료하기 pytorch나 tensorflow와 같은 인공지능 프레임워크를 사용하다보면, 중간에 예기치 않게 프로그램이 종료될 때가 있는데, 이 때 문제점이 data_loader의 num_worcryptosalamander.tistory.com본 포스팅은 해당 블로그의 글을 200% 참고하였습니다.그냥 내가 다시 구글링할 키워드 찾기가 어려울 것 같아서 코드 복붙합니다. Respect합니다.우선 프로세스가 쌓여있는 GPU Number를 확인해준다.주의) 다음 코드를 입력시 해당 GPU에 올라간 모든 python..
종종 nn.Module을 상속한 class의 __init__에서 self.register_buffer라는 코드를 마주하게 되는데 몇번 공부하긴 했다만 매번 까먹어서 정리한다. self.register_buffer(name, tensor)self.register_buffer는 학습은 하지 않지만, 모델과 함께 저장/불러오기되는 텐서를 등록하는 코드이다.register_buffer에 등록된 파라미터들은 모델의 역전파가 되는 과정에서 학습되지 않지만 모델을 저장할 때, 예를들어 state_dict등에는 등록된다. 또한 .to(device)등을 이용해 CPU나 CUDA로 옮기는 기능도 정상적으로 작동한다.예를들어 class init 내부에 다음과 같은 코드가 있다면class MyClass(nn.Module): ..
코드를 공부하는데 다음과 같은 이해할 수 없는 코드가 있었다.if self.eight: max_length = math.ceil(max_length / 8) * 8이게뭐람? max length 를 8로 나누고 올림한 다음 다시 8을 곱해라? 뭐.. 뜬금없이 왜하는건지 모를 코드였는데 찾아보니 GPU연산 효율을 위해 8의 배수가 되도록 max_length를 맞추는 코드라고 한다.GPU 연산에 사용되는 CUDA는 8, 16, 32처럼 2의 배수로 align된 데이터에 대해서 연산 효율이 훨씬 좋다고 한다.특히 transform block이나 CNN에 대해서는 padding을 통해서 길이를 맞춰줄 경우 효율이 극대화 된다고 한다.그런 이유로 지금까지 MLP등의 모델에서 128, 256, 512등의 2의..
약간 고급 코드로 들어가기 시작하면 DataLoader를 그냥 사용하는 경우가 드물어진다.보통은 DataLoader의 collate_fn이라는 메서드를 본인들의 데이터세트에 맞춰 직접 구현해서 사용하는 경우가 많아지는데 collate_fn을 지금까지 딱히 주의깊게 본 적은 없었다.나도 이제 슬슬 내 데이터를 직접 구현해서 추가하려고 하기 때문에 collate_fn의 동작 방식과 왜 사용하는지를 알고 있어야 할 것 같아서 정리해본다.DataLoader( train_dataset, batch_size=config.train.batch_size, collate_fn=PaddingCollate(), shuffle=True, num_workers..
가끔보면 다음처럼 torch의 DataLoader를 inf_iterator라는 함수를 따로 만들어서 태우는 경우가 있다.def inf_iterator(iterable): iterator = iterable.__iter__() while True: try: yield iterator.__next__() except StopIteration: iterator = iterable.__iter__()train_iterator = inf_iterator(DataLoader( train_dataset, batch_size=config.train.batch_size, collate_fn=PaddingC..
PyTorch의 DataLoader는 num_workers > 0일 때,데이터 로딩을 별도의 subprocess(자식 프로세스) 로 실행하는데그런데 그 subprocess에서는 input() 같은 interactivity가 불가능함DataLoader의 num_wokrers 옵션을 0이 아닌 값을 주고 data class의 내부에 input() 함수를 사용했다면 EOFError: EOF when reading a line에러를 보게된다. 해결은 간단하다 DataLoader 코드에 num_workers 옵션을 0을 주면 된다.

좋은 학회에 등재된 논문은 반드시 좋은 논문일까?반드시 그렇지만은 않다고 생각은 해오고 있었지만 최근 읽은 AbDiffuser라는 논문을 통해 반드시 그렇지는 않다는 것을 새삼 강렬히 깨닫게 되었다.해당 논문은 Deep Learning 분야의 저명한 Top tier Conference인 NeurIPs(NIPS) 논문으로 BK에서도 최상위 학회로 인정하여 IF 4.0을 인정하는, 1저자 등록되면 플랜카드가 붙을법한 저명한 학회에 메인 페이퍼로 나와 심지어 spotlight까지 받은 논문이다.그런데 나는 솔직히 이해가 안간다. 내가 해당 논문의 리뷰어였다면 나는 매우 부정적으로 해당 논문을 바라봤을 것이다. 실제로 open reivew 페이지를 가보면 리뷰어 중 한명이 나처럼 매우 부정적인 스탠스를 취하고 ..
- Total
- Today
- Yesterday
- dataloader
- elementry matrix
- 제한볼츠만머신
- 파이썬
- Matrix algebra
- 백준
- MatrixAlgebra
- nanobody
- 3B1B따라잡기
- marginal likelihood
- manim
- MorganCircularfingerprint
- 이왜안
- eigenvalue
- variational autoencoder
- MLE
- 3b1b
- ai신약개발
- manimtutorial
- eigenvector
- 베이즈정리
- 나노바디
- 최대우도추정
- kl divergence
- 오일석기계학습
- manim library
- 선형대수
- 기계학습
- 인공지능
- Manimlibrary
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |