O implementare PyTorch a Predict apoi Propagate: Graph Neural Networks intalneste PageRank personalizat (ICLR 2019).

Abstract

Algoritmii de transmitere a mesajelor neuronale pentru clasificarea semi-supravegheata pe grafice au obtinut recent un mare succes. Cu toate acestea, aceste metode iau in considerare doar nodurile care se afla la cativa pasi de propagare si dimensiunea acestui cartier utilizat nu poate fi extinsa cu usurinta. In aceasta lucrare, folosim relatia dintre retelele convolutionale grafice (GCN) si PageRank pentru a obtine o schema de propagare imbunatatita bazata pe PageRank personalizat. Folosim aceasta procedura de propagare pentru a construi propagarea personalizata a predictiilor neuronale (PPNP) si aproximarea acesteia, APPNP. Timpul de antrenament al modelului nostru este egal sau mai rapid si numarul sau de parametri este egal sau mai mic decat modelele anterioare. Utilizeaza un cartier mare, reglabil pentru clasificare si poate fi combinat cu orice retea neuronala.

O implementare PyTorch si Tensorflow este disponibila [aici.].

Acest depozit ofera o implementare PyTorch a PPNP si APPNP asa cum este descris in lucrare:

Prezice apoi propaga: graficul retelelor neuronale indeplineste PageRank personalizat. Johannes Klicpera, Aleksandar Bojchevski, Stephan Gunnemann. ICLR, 2019. [Lucrare]

Cerinte

Codebase-ul este implementat in Python 3.5.2. versiunile de pachet utilizate pentru dezvoltare sunt chiar mai jos.

networkx 2.4 tqdm 4.28.1 numpy 1.15.4 pandas 0.23.4 texttable 1.5.0 scipy 1.1.0 argparse 1.1.0 torch 1.1.0 torch-scatter 1.4.0 torch-sparse 0.4.3 torch-cluster 1.4.5 torch- geometric 1.3.2 torchvision 0.3.0

Seturi de date

Codul ia ** lista de margine ** a graficului intr-un fisier CSV.

pajotes folladas caseras reales
abuelas sexi pajas en español
xxx españa coños ricos
orgias abuelas incesto lesbianas
follando abuelas brutal tops
danna paola desnuda casadas españolas follando
feet hentai mamadas de polla
sexo gratis incesto sexo hd
videos porno violada porno france
porno madre hijo español peliculas eroticas italianas
vídeos de sexo gratis xxxespañol
lesbianas preciosas incestoxxx
mujeres tetudas follando con mi mujer
madre española follando con su hijo videos xxx violadas
sexo con cincuentonas peliculas porno castellano
pilladas de torbes españolas masturbandose
maria patiño desnuda abuela porno
maduras en playas nudistas muy maduras follando
masaje final feliz fiestas xxx
madurafollando mi mujer me folla el culo

Fiecare rand indica o margine intre doua noduri separate printr-o virgula. Primul rand este un antet. Nodurile ar trebui indexate incepand cu 0. Un esantion de grafic pentru „Cora” este inclus in directorul „input /`. In plus fata de lista de edgel exista un fisier JSON cu caracteristici rare si un csv cu variabila tinta.

** Matricea de caracteristici ** este una binara rara, este stocata ca json. Nodurile sunt chei ale JSON si indicii caracteristicilor sunt valorile. Pentru fiecare nod caracteristicile coloanei ID-urile sunt stocate ca elemente ale unei liste. Matricea de caracteristici este structurata ca:

{0: [0, 1, 38, 1968, 2000, 52727], 1: [10000, 20, 3], 2: [], … n: [2018, 10000]}

Vectorul tinta este un csv cu doua coloane si antetele, primul contine identificatori de noduri al doilea tinte. Acest CSV este sortat dupa identificatori de noduri, iar coloana tinta contine mebershipurile de clasa indexate de la zero.

ID NOD Tinta 0 3 1 1 2 0 3 1 … … n 3

Optiuni

Instruirea unui model APPNP / PPNP este gestionata de scriptul src / main.py care ofera urmatoarele argumente din linia de comanda.

Optiuni de intrare si iesire

–edge-path STR Edge list csv. Implicit este `input / cora_edges.csv`. –features-path STR Caracteristici json. Implicit este `input / cora_features.json`. –target-path STR Clase tinta csv. Implicit este `input / cora_target.csv`.

Optiuni de model

– seminte INT seminte aleatorii. Defailt este 42. –model STR Modelul exact sau aproximativ. Implicit este „exact”. –iteratii INT iteratii APP. Valoarea implicita este 10. – parametru alfa Teleport FLOAT. Implicit este 0,1 –epochs INT Numarul de epoci de antrenament. Valoarea implicita este 2000. –ear-stopping INT Rundele de stopare timpurie. Valoarea implicita este 5. – dimensiunea de formare INT Dimensiunea setului de antrenament. Valoarea implicita este 1500. –test-size INT Test set size. Valoarea implicita este 500. – rata de invatare FLOAT Adam rata de invatare. Valoarea prestabilita este 0,01 – valoare de rata de abandon FLOAT dropout. Valoarea implicita este de 0,5 – parametru FLOAT Rgularization. Valoarea implicita este 0,005. –straturi LST Marimi straturi in primele straturi. Valoarea implicita este [64, 64].

Exemple

Urmatoarele comenzi invata o retea neuronala si puncteaza pe setul de testare. Instruirea unui model despre setul de date implicit.

Instruirea unui model PPNP pentru 100 de epoci.

python src / main.py –epochs 100

Instruirea unui model APPNP.

python src / main.py –model aproximativ

Cresterea ratei de invatare si a abandonului.

python src / main.py – rate de invatare 0.1 – dropout 0.9

Licenta

  • Licenta GNU