인기글
-
deep learning
[pytorch] RuntimeError: 0D or 1D target tensor expected, multi-target not supported 에러
nn.CrossEntropyLoss() 혹은 F.cross_entropy 를 사용했을 때 나타나는 에러일 것이다. nn.CrossEntropyLoss()(pred, target) 이렇게 계산이 되는데 가령 pred의 shape의 [ B, C]라면 C는 클래스 갯수 B는 배치 사이즈 target의 shape은 [B] 가 되어야 하는데 [B, 1]이렇게 돼서 문제가 발생하는 거다. 그래서 문제를 해결하려면 target의 shape를 축소해주자. nn.CrossEntropyLoss()(pred, target.squeeze(dim=-1)) https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html CrossEntropyLoss — PyTor..
-
machine learning
rdkit 설치하기
rdkit 공식 문서를 보면 pip 도 안되고 conda로 해라고 한다. 그런데 conda로도 안돼서 여러 삽질을 거치다 다음과 같은 해결법을 알게됐다. !pip install python-rdkit 위 명령어면 한 방에 해결된다. # General Imports import os import pandas as pd import numpy as np pd.options.display.max_columns=300 import warnings warnings.filterwarnings("ignore") from rdkit import Chem from rdkit.Chem import Draw, Descriptors from rdkit import DataStructs from rdkit.Chem import..
-
후기
[치닝 디핑 후기] 차칸철봉 조립부터 턱걸이(풀업) 테스트까지 (차칸철봉 후기)
조립 설명서를 보고 차근차근 조립했다. 구매 계기 코로나 때문에 헬스장에 못 간지 너무 오래됐다. 재택근무라 집안에 박혀 있어서 운동량도 상당히 줄었고. 주 4회는 헬스&요가를 했었던 한달 전과 비교하면 요즘 몸이 너무 찌뿌둥하고 더 피곤하다. 헬스장에서 내가 주로 하던 운동은 턱걸이 & 푸시업. 두 가지만이라도 할 수 있으면 좋을 텐데, 주변에 매달릴 철봉이 없다. 철봉이 필요하다! 인터넷 검색 결과 적당한 가격대에 리뷰가 좋은 차칸철봉?을 골랐다. 주문하니 배송까지 3일 정도 걸린 것 같다. 조립 과정 조립을 시작하기까지 상당한 시간이 필요했다. 그 이유는... 바쁨이라고 쓰고 게으름이라고 읽겠다. 도착한 지 일주일이나 지나서야 조립하기 시작한 나... 처음에 상당히 당황했다. '뭔데 3박스까지 온걸..
-
기타
non manifold? manifold? 가 무엇인가
www.sculpteo.com/en/3d-learning-hub/create-3d-file/fix-non-manifold-geometry/ How to fix non-manifold geometry issues on 3D models Are you having some non-manifold geometry issues with your 3D model? Here are our tips to fix it and to prevent this from happening! www.sculpteo.com non-manifold geometry란 무엇인가? 2D로 펼쳐질 수없는 3D 형태 (펼쳐질 수 있단 건, 모든 normal vector가 한 방향을 가리킨 다는 의미) 3d printing에 왜 manifol..
-
deep learning
[논문 읽기] ConvLSTM 이해하기
시계열에 좋은 LSTM! 이미지에 좋은 Conv! 이 둘을 짬뽕시킨 Convolutional LSTM을 알아보자. LSTM에 대한 사전지식이 필요하다. https://limitsinx.tistory.com/62 [코드로 이해하는 딥러닝 2-11] - RNN(Recurrent Neural Network)/LSTM(Long-Short-Term-Memory) [코드로 이해하는 딥러닝 0] - 글연재에 앞서 https://limitsinx.tistory.com/27 [코드로 이해하는 딥러닝 1] - Tensorflow 시작 https://limitsinx.tistory.com/28 [코드로 이해하는 딥러닝 2] - Tensorflow 변.. limitsinx.tistory.com $i_t$는 입력 게이트, $f..
-
기타
[노션] 노션 상위 혹은 하위 페이지 공유 안하기!!!
노션 상위 페이지가 불필요하게 공유되는 현상이 있는데, 한글로 검색해봐도 딱히 자료가 없어서 공유한다. 여기서 위의 공유용문서까지 보이는 사태가 발생하고 있었는데... 이걸 어떻게 해결할 것인가? 답은 간단하다. 공유용 문서 탭에 들어간다 -> 여기서 아래 노션 공홈에서 얘기하는 것처럼 접근 제한을 준다. https://www.notion.so/help/sharing-and-permissions Guide to using Notion’s sharing and permission settings – Notion Help Center Be in complete control of who has access to your information and what level of access they have. L..
머신러닝
-
machine learning
rdkit 설치하기
rdkit 공식 문서를 보면 pip 도 안되고 conda로 해라고 한다. 그런데 conda로도 안돼서 여러 삽질을 거치다 다음과 같은 해결법을 알게됐다. !pip install python-rdkit 위 명령어면 한 방에 해결된다. # General Imports import os import pandas as pd import numpy as np pd.options.display.max_columns=300 import warnings warnings.filterwarnings("ignore") from rdkit import Chem from rdkit.Chem import Draw, Descriptors from rdkit import DataStructs from rdkit.Chem import..
-
machine learning
[pandas] pandas dataframe 이용해서 그룹별로 train/val 나누기
가끔 dataframe 자체로 train_test_split을 해야 할 때가 있다. 그럴 땐 어떻게 해야하나... 특히 그룹별로 특정 샘플이 valset에 균등하게 포함되도록 하려면...? 간단한 방법 groupby후 sampling을 한다. validation을 0.2만큼 하고 싶으면 frac=0.2로 준다. 그렇게 나타난 valDataset의 index를 drop 해주면 된다. 이것보다 어려운 방법은 drop의 반대 방법으로 있는 부분만 iloc으로 남기는 것이다. 이상 끝
-
machine learning
dtreeviz IndexError, decision tree visualization
random forest 모델 혹은 decision tree 모델을 이용했을 경우 모델이 어떻게 작동하는지 설명을 요구할 때가 있다. RandomForestRegressor를 이용해서 회귀분석을 진행했다. 그런데 RandomForestRegressor같은 경우 여러 Decision tree의 앙상블 모델로 tree를 한 번에 시각화하기가 어렵다. 그래서 tree중 하나를 선택해서 시각화한다. 그러다 좋은 라이브러리를 발견했다. dtreeviz 이런식으로 쓰면되는 간단하고 편리한 라이브러리다! model = Pipeline([('scaler',MinMaxScaler()), ('DecisionTreeRegressor', DecisionTreeRegressor(criterion='mae', max_depth=..
-
machine learning
epoch, iter ?
epoch, iter (한 번의 epoch는 인공 신경망에서 전체 데이터 셋에 대해 forward pass/backward pass 과정을 거친 것을 말함. 즉, 전체 데이터 셋에 대해 한 번 학습을 완료한 상태) [출처] 머신 러닝 - epoch, batch size, iteration의 의미|작성자 예비개발자 메모리의 한계와 속도 저하 때문에 대부분의 경우에는 한 번의 epoch에서 모든 데이터를 한꺼번에 집어넣을 수는 없습니다. 그래서 데이터를 나누어서 주게 되는데 이때 몇 번 나누어서 주는가를 iteration, 각 iteration마다 주는 데이터 사이즈를 batch size라고 합니다. 전체 2000 개의 데이터가 있고, epochs = 20, batch_size = 500이라고 가정합시다. ..