Graficar redes convolucionales - KolMitE

Graficar redes convolucionales

Graficar redes convolucionales

noviembre 14, 2022 Software en General 0

Graficar redes convolucionales

Esta es una implementación de TensorFlow de Graph Convolutional Networks para la tarea de clasificación (semisupervisada) de nodos en un gráfico, como se describe en nuestro artículo:

Thomas N. Kipf, Max Welling, Clasificación semisupervisada con redes convolucionales gráficas (ICLR 2017)

Para una explicación de alto nivel, echa un vistazo a nuestra publicación de blog:

Thomas Kipf, Redes convolucionales gráficas (2016)

Instalación

python setup.py install

Requisitos

  • tensorflow (>0.12)
  • redx

Ejecute la demostración

cd gcn
python train.py

Datos

Para utilizar sus propios datos, debe proporcionar

  • una matriz de adyacencia N por N (N es el número de nodos),
  • una matriz de características N por D (D es el número de características por nodo), y
  • una matriz de etiquetas binarias N por E (E es el número de clases).

Echa un vistazo a la load_data() función en utils.py para un ejemplo.

En este ejemplo, cargamos datos de la red de citas (Cora, Citeseer o Pubmed). Los conjuntos de datos originales se pueden encontrar aquí: http://www.cs.umd.edu/~sen/lbc-proj/LBC.html. En nuestra versión (ver data carpeta) utilizamos divisiones de conjuntos de datos proporcionados por https://github.com/kimiyoung/planetoid (Zhilin Yang, William W. Cohen, Ruslan Salakhutdinov, Revisiting Semi-Supervised Learning with Graph Embeddings, ICML 2016).

Puede especificar un conjunto de datos de la siguiente manera:

python train.py --dataset citeseer

(o editando train.py)

Modelos

Puedes elegir entre los siguientes modelos:

  • gcn: Red convolucional de gráficos (Thomas N. Kipf, Max Welling, Clasificación semisupervisada con redes convolucionales de gráficos, 2016)
  • gcn_cheby: versión polinomial de Chebyshev de la red convolucional de grafos como se describe en (Michaël Defferrard, Xavier Bresson, Pierre Vandergheynst, Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering, NIPS 2016)
  • dense: perceptrón multicapa básico que admite entradas escasas

Clasificación de gráficos

Nuestro marco también admite la clasificación por lotes de múltiples instancias de gráficos (de tamaño potencialmente diferente) con una matriz de adyacencia cada una. Lo mejor es concatenar matrices de características respectivas y construir una matriz diagonal de bloques (escasa) donde cada bloque corresponde a la matriz de adyacencia de una instancia de gráfico. Para la agrupación (en el caso de salidas a nivel de gráfico en lugar de salidas a nivel de nodo), es mejor especificar una matriz de agrupación simple que recopile características de sus respectivas instancias de gráfico, como se ilustra a continuación:

clasificación_grafica

Citar

Cite nuestro artículo si utiliza este código en su propio trabajo:

@inproceedings{kipf2017semi,
  title={Semi-Supervised Classification with Graph Convolutional Networks},
  author={Kipf, Thomas N. and Welling, Max},
  booktitle={International Conference on Learning Representations (ICLR)},
  year={2017}
}

Idiomas



  • Pitón
    100,0%

Por favor Comparte y Síguenos:
RSS
Follow by Email
Facebook
Twitter

Deja una respuesta