python, pyTorch 33

torch_geometric.data format 전환하기

1. torch_geometric.data Format from torch_geometric.data import Data from torch_geometric.nn import GCNConv GNN 모델을 구현할 때 주로 torch_geometric 패키지를 사용한다. Data는 정해진 포맷이 있는데, 다음과 같다. x (Tensor) : Node feature matrix이다. shape : [num_nodes, num_node_features] edge_index (Long Tensor) : Graph connectivity format. shape : [2, num_edges] edge_index 가 어떤 포맷인지 감이 안올 수 있다. 만약 (1,2) (1,3) (2,3) node pair 가 연..

python, pyTorch 2021.09.08

python) csv 파일 읽어오기/수정하기/쓰기

pycharm 패키지 설치 방법 File > Settings > Project > Project Interpreter > + if __name__ =='__main__': 뜻 '__name__이라는 변수의 값이 __main__이라면 아래의 코드를 실행하라.' 이 조건문은, 직접 실행시켰을 때만 실행되길 원하는 코드들을 넣어주는 용이다. 예를 들어 모듈내에서만 사용하는 테스트용 코드를 넣어주게 되면, 실제 import될 때는 출력되지 않는다. 모듈 테스트할 때 아주 유용하게 쓰고있다! 리스트 추가하기 (1) append >>> a = [1, 2, 3] >>> a.append(4) >>> a [1, 2, 3, 4] >>> a.append([5,6]) >>> a [1, 2, 3, 4, [5, 6]] (2) e..

python, pyTorch 2021.09.07

Pycharm 과 Anaconda 연동하기

계속 개발을 jupyter notebook에서 하다가 pycharm으로 옮기게 되었는데, jupyter notebook에서 사용하던 패키지를 사용하고 싶어서 연동방법을 검색해보았다. 의외로 굉장히 간단하게 연동이 가능했다. 프로젝트를 생성할 때, 기본적으로 New environment 가 선택되는데, 대신 Existing interpreter를 선택하고, 내가 주로 개발하던 가상 환경의 python.exe를 선택해준다. 이렇게 추가해주고나니 site-pacakages에 사용하던 패키지가 모두 있음을 확인할 수 있었다. 룰루!

python, pyTorch 2021.09.02

그래프 예쁘게 그리기 2탄 : networkx.draw 함수

1탄에서 networkx layout 함수를 사용했다. 그래프 예쁘게 그리기! networkx layout 함수 그래프는 함수그리는 것과는 다르게, 노드의 위치가 정해져있지 않다. 그래서 간혹 그래프를 시각화하면 라벨이 겹쳐있거나, 분석하기에 어려운 면이 있다. networkx 에 유용한 함수가 있어서 정 zooyeonii.tistory.com node classification 후에 node coloring을 하려고 하는데 제일 간단하게 할 수 있는 방법이 뭘까 찾아봤다. 현재 karateclub data라서, 0과 33노드 기준으로 2개의 클래스로 나누는 문제이다. 다음 코드처럼 딱 하나가 추가됐다. 현재 node_labels 는 prediction 결과로 torch.Size([34]) , x 는 t..

python, pyTorch 2021.08.11

그래프 예쁘게 그리기! networkx layout 함수

그래프는 함수그리는 것과는 다르게, 노드의 위치가 정해져있지 않다. 그래서 간혹 그래프를 시각화하면 라벨이 겹쳐있거나, 분석하기에 어려운 면이 있다. networkx 에 유용한 함수가 있어서 정리해보았다. def plot_graph(data, node_labels=None): fig, ax = plt.subplots() fig.set_tight_layout(False) nx_g = to_networkx(data=data).to_undirected() pos = nx.kamada_kawai_layout(nx_g) nx.draw(nx_g, pos, with_labels=True) plt.show() set_tight_layout(False) 는 틀이 정해져있지 않음을 의미합니다. layout 종류 : (1)..

python, pyTorch 2021.08.11

pytorch : txt파일 전처리

readlines 함수 사용하기 f = open("파일경로/파일이름.txt", 'r') lines = f.readlines() for line in lines: print(line) f.close() 사용하는 txt 파일 0,1 1,2 1,3 2,3 ... 그래프의 edge를 기록한 파일. Data pre-processing : GCN 모델에 사용할 데이터이기 때문에, torch_geometric.data format에 맞춰줄 것이다. x(Tensor) : Node feature matrix. shape : [num_nodes, num_node_features] edge_index(LongTensor) : Graph connectivity format with shape : [2, num_edges] 위..

python, pyTorch 2021.08.11

torch_geometric.utils

GNN 모델링에 자주 사용되는 모듈 정리 중...(자주 수정됨) 1. to_networkx to_networkx Converts a torch_geometric.data.Data instance to a networkx. Graph if to_undirected is set to True, or a directed networkx. DiGraph otherwise. 나는 undirected graph를 사용하므로, to_networkx(data).to_undirected() 해준다. 2. to_undirected to_undirected Converts the graph given by edge_index to an undirected graph such that (j,i)∈E for every edge..

python, pyTorch 2021.08.11

GNN dataset (dynamic graph)

1. Bitcoin-OTC Nodes 5,881 Edges 35,592 Edge weight -10~10 Percentage of positive edges 89% Data Format SOURCE: node id of source, i.e., rater TARGET: node id of target, i.e., ratee RATING: the source's rating for the target, ranging from -10 to +10 in steps of 1 TIME: the time of the rating, measured as seconds since Epoch. 해당 데이터셋은, 피어들이 서로의 신뢰도 점수를 매기고, 이를 edge weight 로 한다. Edge prediction (다..

python, pyTorch 2021.08.11

tensorflow-gpu 에러 (해결)

CUDA, visual studio, cuDNN, pytorch 를 깔았던 어제.. (1) torch-gpu 설치 (2) CUDA 에러발생(재설치하기) (3) CUDA 에러해결 torch-gpu는 정상적으로 설치됐는데 tensorflow-gpu는 오류가 발생했다. 이유가 무엇인지 살펴보쟈.. tensorflow-gpu 설치 조건 내 PC환경 : NVIDIA GPU 드라이버 460.89 CUDA 11.1 cuDNN 8.0.4 에러 원인 : W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'cusolver64_10.dll'; dlerror: cusolver64_10.dll not foun..

python, pyTorch 2021.08.07