크게 Node level, Edge level, Subgraph level, Graph level 4가지로 나누어서 본다. Node Level ex1) Protein Folding Edge Level Recommender System에서 User-Item간의 edge 추측하기 ex1) PinSage ex2) Drug Side Effect 약을 같이 복용했을때의 부작용 예측하기 Node = 약&단백질, Edge = 부작용 Subgraph Level ex) Traffic Prediction Node= Road Segment Edge = connectivity between road segments Prediction = Time of Arrival Graph level ex) Drug Discovery: g..
from Stanford CS224W - event graphs, computer networks, disease pathways, food webs, particle networks, underground networks, social networks, economic networks, communication networks, citation networks, internet, networks of neuron, knowledge graphs, regulatory networks, scene graphs, code graphs, molecules, 3D shapes
일단 가상환경 위 혹은 도커 위에서 설치해야 한다. 공식 문서에서는 root user에서 설치하지 말라고 한다. anaconda로 설치하기 현재 자신의 pytorch 버전이 1.10 이상이고, CUDA버전이 10.2 이상이라면 anaconda를 통해서 설치하는것을 추천한다. conda install pyg -c pyg 그 이하의 버전이라면 pip wheel을 통해서 설치해야 한다. (조금 복잡함) pytorch와 CUDA버전을 올리고 싶을 수 있다. 이때 주의해야 할 사항들은 다음과 같다. 1. gpu의 CUDA버전과 torch의 CUDA 버전이 같은지 확인한다. nvidia-smi에서 나온 CUDA버전과 $ print(torch.version.cuda) 에서 나온 버전이 같은 것이 좋다. 아니면 예상치..
네이버 부스트캠프 AI Tech 3기 강의 중 최영선 멘토님의 특강을 듣는 과정에서 작성된 포스트입니다. 강의 내용을 저만의 언어로 재해석 했습니다. AutoML이란? ML의 대부분의 과정을 자동화해주는 툴이다. 아마존, 구글클라우드, 마이크로소프트에서 모두 AutoML 관련 프레임워크를 만들고 있다. 데이터 분석, 파라미터 튜닝 등 정말 많은 부분을 자동화해주는 갓갓 프레임워크이다. AzureML이란? Azure for Students를 구독하면 한정된 기능으로 Azure을 무료로 이용할 수 있다. (매년 학생 계정으로 재인증을 해야한다는 단점이 있긴 하다.) 학교 microsoft 계정이랑 연동되어서 쉽게 가입할 수 있었다. 집 주소를 입력해야 하고 핸드폰 번호 인증을 받아야 한다. 영어로 설정해서 ..
https://github.com/danielgatis/rembg
한장 Image.open으로 Image 객체로 받아오고, np.array로 array로 만들고 plt.imshow로 보여주기. img_path = f'어쩌구.jpg' img = np.array(Image.open(img_path)) plt.figure(figsize=(16,8)) plt.imshow(img) 4장 묶어서 plt.subplots함수로 만들어주고, 각각에 imshow와 title 달아주기 tight_layout으로 완성 n_rows, n_cols = 2, 2 fig, axes = plt.subplots(n_rows, n_cols, sharex=True, sharey=True, figsize=(8, 8)) axes[0][0].imshow(img) axes[0][0].set_title(f'Ori..
pip install wandb wandb login key를 wandb.ai에서 복사해서 붙여준다. import wandb 코드의 첫 부분에 써준다. wandb.init() 혹시 프로젝트 이름과 id를 명시하고싶다면 wandb.init(project='Machine-Learning-Project', entity='jonyejin') 이렇게 써주면 된다! argparse가 선언이 되어있고, parse_args()로 args를 정의했다면 다음과 같이 wandb.config.update를 해준다. def main(): # Training settings parser = argparse.ArgumentParser(description='PyTorch MNIST Example') ... args = parser..
import cv2를 했는데 """ cannot open shared object file no such file or directory ImportError: libGL.so.1: cannot open shared object file: No such file or directory """ 에러가 난다면 libgl이 서치가 안되어서 실행이 안될 확률이 높다. apt-get install libgl1-mesa-glx pip install opencv-python 하니까 잘 되는 모습을 볼 수 있다. 만약 ModuleNotFoundError: No module named 'cv2' 에러가 뜬다면 pip install opencv-python 으로 설치해주면 된다.
nn.Linear은 행렬과 같다. nn.Linear을 통해서 행렬을 곱해서 tensor의 size()를 바꿀 수 있다. import torch from torch import nn X = torch.Tensor([[1, 2], [3, 4]]) # TODO : tensor X의 크기는 (2, 2)입니다 # nn.Linear를 사용하여서 (2, 5)로 크기를 바꾸고 이 크기를 출력하세요! m = torch.nn.Linear(2, 5) output = m(X) print(output.size())
Intro Matplotlib와 어떤점이 다를까 싶을 수도 있는데 다음 링크에 잘 설명되어 있다 실제 사용해본 느낌으로는, matplotlib이 가장 기초적이고 모든 부분이 custom 가능하지만 너무 신경써야할 부분이 많았고, 반대로 seaborn은 디자인과 사용이 매우 쉬웠지만 커스텀을 하기에는 어려웠다. 메모리 사용량도 seaborn이 더 높다고 링크에 설명되어 있었다. Install and Import ! pip install seaborn import seaborn as sns 종류 - API reference Relational plot relplot, scatterplot, lineplot Distribution displot, histplot, kdeplot, ecdfplot, rugplo..
네이버 부스트캠프 AI Tech 3기 강의를 듣는 과정에서 작성된 포스트입니다. 강의 내용을 저만의 언어로 재해석 했습니다. Matplotlib말고도 Seaborn, Plotly, Bokeh, Altair 등의 다양하고 친절한 시각화 라이브러리가 존재한다. 그럼에도 불구하 Matplotlib가 범용성이 제일 넓고, base가 되는 라이브러리라서 정리해보고자 한다. Import 하기 import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt print(f'numpy version : {np.__version__}') # version check print(f'matplotlib version : {mpl.__version__}')..
1. array 생성 np.array([1,4,5,6], float) # ndarray 타입으로 생긴다. 이미 pyTorch의 Tensor로 정의되어 있다면 바로 바꿀 수도 있다. embeddings_t = torch.Tensor(np.ones((2, 2))) embeddings_numpy = embeddings_t.numpy() numpy는 하나의 데이터 타입만 넣을 수 있는거 기억하자! 2. array 모양 받아오기, 타입 확인하기, 크기 확인하기 array.shape array.dtype array.nbytes 3. shape 바꾸기 array.reshape(8,) array.reshape(-1,2) # -1은 안쓰는것처럼 size를 기반으로 자동 설정 해준다. array.flatten() 4. i..
갑자기... 컴퓨터를 강제종료하면 이런 오류가 생길 수 있다고 한다....ㅠㅠㅠㅠ 1. nvidia-smi 해당 오류가 나온다. 2) apt --installed list | grep nvidia-driver 3) sudo apt remove nvidia-driver- sudo apt autoremove 4) sudo apt-get install nvidia-driver- sudo reboot now 하면 잘 되는 모습을 볼 수 있따!! * 안될 때 apt-get update하고 다시 하니까 됐다...
딥러닝을 처음 공부할때 나를 정말 힘들게 했던 에러다...하지만 차근차근 생각해보니 쉽게 해결할 수 있는 에러였다. 먼저, CPU와 GPU는 엄연히 다른 기기이다. 메모리 공간이 분리되어 있기 때문에 CPU에 있는 텐서와 GPU에 있는 텐서를 비교할 수 없는 것이다. 그래서 우리가 텐서끼리의 연산을 할 때 반드시 같은 기기인지 확인을 해야한다. 1. 텐서끼리 같은 기기에 있는지 확인해보자. 텐서가 CPU에 있는지 GPU에 있는지 확인하기 위해서 is_cuda()함수를 사용한다. # CPU에 있는 텐서 t = torch.randn(2,2) t.is_cuda # returns False # GPU에 있는 텐서 t = torch.randn(2,2).cuda() t.is_cuda # returns True Fa..
텐서(tensor)는 배열(array)이나 행렬(matrix)과 매우 유사한 특수한 자료구조입니다. PyTorch에서는 텐서를 사용하여 모델의 입력과 출력뿐만 아니라 모델의 매개변수를 부호화(encode)합니다. GPU나 다른 연산 가속을 위한 특수한 하드웨어에서 실행할 수 있다는 점을 제외하면, 텐서는 NumPy의 ndarray와 매우 유사합니다. 만약 ndarray에 익숙하다면 Tensor API를 바로 사용할 수 있습니다. list -> tensor data = [[3,5], [10,5]] x_data = torch.tensor(data) numpy array -> tensor np_array = np.array(data) x_np = torch.from_numpy(np_array) tensor -..
Dataloader DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, num_workers=0, collate_fn=None, pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None) Dataloader class는 batch기반의 딥러닝모델 학습을 위해서 mini batch를 만들어주는 역할을 한다. dataloader를 통해 dataset의 전체 데이터가 batch size로 slice된다. 앞서 만들었던 dataset을 input으로 넣어주면 여러 옵션(데이터 묶기, 섞기, 알아서 병렬처리)을 통해 batch를 만들어준다. 서버에서 돌릴 때..
https://jimnong.tistory.com/676 우분투 리눅스 듀얼부팅 설치방법 정리(윈도우10 기준) 우분투 리눅스 다운로드 방법(Desktop 버전) 우분투 리눅스 설치용 USB 만드는 법(윈도우에서) 우분투 리눅스 설치용 USB 만드는 법(Ubuntu 16.04 에서) 에 이어... 우분투 듀얼부팅 설치방법을 설명하고 jimnong.tistory.com 우분투 USB 만들어야해... rufus로 만드는거 성공했따! ( 삽질은 이전포스팅 참조.. ) 1. 우분투 설치 공간 마련 ( 기존 파티션 줄이기 ). https://jimnong.tistory.com/676 여기 1번처럼 해줬다 2. 재부팅 부팅할 때 del키를 꾹 누르고 있었더니 됐다 순서를 드래그해서 변경하고 바이오스를 저장하고 빠져..
데스크탑 세팅이 안될 경우를 생각해서 eGPU도 찾아보고 있다 (외장 그래픽) 조건 1) macOS High Sierra 10.13.4 이후 버전 2) Intel 프로세서 3) Thunderbolt 3 포트 있어야 함 https://support.apple.com/ko-kr/HT201736 여기서 Thunderbolt3 확인 가능하다. 4) 지원되는 eGPU 종류 확인하기 Thunderbolt 3 올인원 eGPU 제품 이들 제품에는 강력한 GPU가 내장되어 있어 MacBook Pro를 충전하는 데 충분한 전력을 공급합니다. 권장되는 Thunderbolt 3 올인원 eGPU는 다음과 같습니다. Blackmagic eGPU 및 Blackmagic eGPU Pro4 Gigabyte RX 580 Gaming B..
공유기 포트 포워딩 SSH Reverse Tunneling 크롬 원격 데스크탑: ubuntu에서 불안하다는 말이 있어서 선택하지 않음. https://gigglehd.com/gg/soft/7534270 1) jupyter 사용하기 그냥 jupyter에 암호와 tls 걸고 openssh-server fail2ban 설정한 후 포트 바꿔놓고 필요할 때만 ssh로 jupyter 실행하신 후 브라우저로 돌리시는 식으로 사용하시면 됩니다. 다른 분 말씀대로 클라우드쪽을 한번 찔러보시는 것도 좋고요. colab은 사용시간 제한이 있는 게 단점인데 비용이 공짜라서 좋죠. 뚫리는 건 크게 다음과 같은 원인 중 하나지요. 업데이트를 충실히 하지 않았거나, 비밀번호가 너무 쉬웠거나, 비밀번호 무한 대입을 막지 않았거나, ..
Line 두 점 x1과 x2을 지나는 Line은 다음과 같이 정의된다. 이때, θ는 임의의 실수이며 θ가 0이면 y는 x2가 되고, θ가 1이면 y는 x1이 된다. 따라서, θ가 0보다 작거나 1보다 크면 x2에서 x1까지의 범위를 벗어나는 것을 위의 그림에서 확인할 수 있다. y=θx1+(1−θ)x2 with θ∈R Line segment 직선의 식에서 θ의 범위를 0에서 1로 제한하면 line segment가 된다. 따라서, line segment는 직선의 식에 0≤θ≤1 조건을 추가해서 정의할 수 있다. y=θx1+(1−θ)x2 with 0≤θ≤1 다음과 같이 식을 조금 다르게 표현해서 해석해보면 line segment는 점 x2에서 출발해서 (x1−x2) 벡터 방향으로 θ배로 진행하다 x1에 도달..
▶ MNIST: 0부터 9까지의 28 x 28 손글씨 사진을 모은 데이터셋 (학습용: 60,000개 / 테스트용: 10,000) MNIST 데이터베이스 (Modified National Institute of Standards and Technology database)는 손으로 쓴 숫자들로 이루어진 대형 데이터베이스이며, 다양한 화상 처리 시스템을 트레이닝하기 위해 일반적으로 사용됩니다. 이 데이터베이스는 또한 기계 학습 분야의 트레이닝 및 테스트에 널리 사용됩니다. NIST의 오리지널 데이터셋의 샘플을 재혼합하여 만들어졌습니다. NIST의 흑백 그림들은 28x28 픽셀의 바운딩 박스와 앤티엘리어싱 처리되어 그레이스케일 레벨이 들어가 있도록 평준화되었습니다. ▶ CIFAR-10: 10개의 클래스로 구분..