
Домашняя страница | Бумага | Документация | Дискуссионный форум | Набор данных |中文
COGDL - это набор инструментов для глубокого обучения графика, который позволяет исследователям и разработчикам легко обучать и сравнивать базовые или индивидуальные модели для классификации узлов, классификации графов и других важных задач в области графика.
Мы суммируем вклад COGDL следующим образом:
Бумага Cogdl была принята www 2023. Найдите нас на www 2023! Мы также выпускаем новый релиз v0.6 , который добавляет больше примеров самоподдерживания графиков обучения, включая Graphmae, Graphmae2 и Bgrl.
Бесплатный курс GNN, предоставленный командой CoGDL, присутствует по этой ссылке. Мы также предоставляем дискуссионный форум для китайских пользователей.
Новый релиз V0.5.3 поддерживает обучение смешанного назначения путем настройки textIt {fp16 = true} и предоставляет основной пример, написанный Jittor. Он также обновляет учебник в документе, исправляет загрузку ссылок некоторых наборов данных и исправляет потенциальные ошибки операторов.
Новый релиз V0.5.2 добавляет пример GNN для наборов данных GNN-продуктов и обновлений. Это также исправляет некоторые потенциальные ошибки, включая настройку устройств, использование ЦП для вывода и т. Д.
Новый релиз V0.5.1 добавляет быстрые операторы, включая SPMM (версия CPU) и scatter_max (версия CUDA). Он также добавляет множество наборов данных для классификации узлов, которые можно найти в этой ссылке. ?
Новый V0.5.0 выпускает проектирование и реализует унифицированный тренировочный цикл для GNN. Он вводит DataWrapper , чтобы помочь подготовить учебные/проверки/тестовые данные и ModelWrapper для определения обучения/валидации/тестирования. ?
Новый релиз V0.4.1 добавляет реализацию Deep GNN и рекомендационную задачу. Он также поддерживает новые трубопроводы для создания внедрения и рекомендаций. Добро пожаловать, чтобы присоединиться к нашему учебному пособию на KDD 2021 в 10:30 - 12:00, 14 августа (время в Сингапуре). Более подробную информацию можно найти в https://kdd2021graph.github.io/. ?
Новые рефакторики V0.4.0 Refactors The Storage Data (от Data до Graph ) и предоставляет более быстрые операторы для ускорения обучения GNN. Это также включает в себя множество самоотверженных методов обучения на графиках. Кстати, мы рады сообщить, что мы дадим учебник на KDD 2021 в августе. Пожалуйста, смотрите эту ссылку для получения более подробной информации. ?
COGDL поддерживает модели GNN с смесью экспертов (MOE). Вы можете установить Fastmoe и попробовать Moe GCN в Cogdl сейчас!
Новый релиз V0.3.0 обеспечивает быстрый оператор SPMM для ускорения обучения GNN. Мы также выпускаем первую версию Cogdl Paper в Arxiv. Вы можете присоединиться к нашему Slack для обсуждения. ???
Новый релиз V0.2.0 включает в себя простой в использовании experiment и API-интерфейсы pipeline для всех экспериментов и применений. API experiment поддерживает функции автоматического поиска гиперпараметров. Этот релиз также предоставляет API OAGBert для вывода моделя ( OAGBert обучается на нашей лаборатории в крупномасштабном академическом корпусе). Некоторые функции и модели добавляются сообществом с открытым исходным кодом (благодаря всем участникам?).
Новый релиз V0.1.2 включает в себя задачу перед тренировкой, много примеров, наборы данных OGB, некоторые методы встраивания графов знаний и некоторые модели нейронной сети графиков. Покрытие COGDL увеличивается до 80%. Некоторые новые API, такие как Trainer и Sampler , разрабатываются и тестируются.
Новый релиз V0.1.1 включает в себя задачу прогнозирования знаний, многие современные модели и поддержку optuna . У нас также есть китайский пост WeChat о выпуске Cogdl.
Пожалуйста, следуйте инструкциям здесь, чтобы установить Pytorch (https://github.com/pytorch/pytorch#installation).
Когда Pytorch был установлен, CoGDL может быть установлен с помощью PIP следующим образом:
pip install cogdlУстановить из источника через:
pip install git+https://github.com/thudm/cogdl.gitИли клонировать репозиторий и установить со следующими командами:
git clone [email protected]:THUDM/cogdl.git
cd cogdl
pip install -e . Вы можете провести всевозможные эксперименты через API Cogdl, особенно experiment . Вы также можете использовать свои собственные наборы данных и модели для экспериментов. Пример QuickStart можно найти в Quick_start.py. В примерах приведены больше примеров.
from cogdl import experiment
# basic usage
experiment ( dataset = "cora" , model = "gcn" )
# set other hyper-parameters
experiment ( dataset = "cora" , model = "gcn" , hidden_size = 32 , epochs = 200 )
# run over multiple models on different seeds
experiment ( dataset = "cora" , model = [ "gcn" , "gat" ], seed = [ 1 , 2 ])
# automl usage
def search_space ( trial ):
return {
"lr" : trial . suggest_categorical ( "lr" , [ 1e-3 , 5e-3 , 1e-2 ]),
"hidden_size" : trial . suggest_categorical ( "hidden_size" , [ 32 , 64 , 128 ]),
"dropout" : trial . suggest_uniform ( "dropout" , 0.5 , 0.8 ),
}
experiment ( dataset = "cora" , model = "gcn" , seed = [ 1 , 2 ], search_space = search_space ) Вы также можете использовать python scripts/train.py --dataset example_dataset --model example_model для запуска example_model на example_data.
cora citeseer . Поддерживаемые наборы данных включают «Cora», «citeseer», «Pumbed», «ppi», «wikipedia», «blogcatalog», «flickr». Больше наборов данных можно найти в наборах данных CoGDL/.gcn gat . Поддерживаемые модели включают «GCN», «Gat», «Graphsage», «DeepWalk», «Node2Vec», «Hope», «Grarep», «Netmf», «Netsmf», «подвергнут». Больше моделей можно найти в Cogdl/моделях.Например, если вы хотите запустить GCN и GAT в наборе данных CORA, с 5 разными семенами:
python scripts/train.py --dataset cora --model gcn gat --seed 0 1 2 3 4Ожидаемый выход:
| Вариант | test_acc | val_acc |
|---|---|---|
| ('cora', 'gcn') | 0,8050 ± 0,0047 | 0,7940 ± 0,0063 |
| ('cora', 'gat') | 0,8234 ± 0,0042 | 0,8088 ± 0,0016 |
Если у вас есть какие -либо трудности, чтобы заставить вещи работать на вышеуказанных шагах, не стесняйтесь открывать проблему. Вы можете ожидать ответа в течение 24 часов.
Если у вас есть хорошо выполненный алгоритм и вы готовы реализовать его в нашем инструментарии, чтобы помочь большему количеству людей, вы можете сначала открыть проблему, а затем создать запрос на вытягивание, здесь можно найти подробную информацию.
Перед совершением модификации, пожалуйста, сначала запустите pre-commit install , чтобы настроить крюк GIT для проверки формата кода и стиля с использованием black и flake8 . Тогда pre-commit будет автоматически работать на git commit ! Подробную информацию о pre-commit можно найти здесь.
Если вы хотите провести параллельные эксперименты на вашем сервере с несколькими графическими процессорами на нескольких моделях, GCN и GAT, в наборе данных CORA:
$ python scripts/train.py --dataset cora --model gcn gat --hidden-size 64 --devices 0 1 --seed 0 1 2 3 4Ожидаемый выход:
| Вариант | Акк |
|---|---|
| ('cora', 'gcn') | 0,8236 ± 0,0033 |
| ('cora', 'gat') | 0,8262 ± 0,0032 |
Вы можете быть запутаны, почему ваш запрос на привлечение был отклонен из -за «покрытия уменьшено ...», даже если ваша модель работает хорошо локально. Это связано с тем, что вы не включили модульный тест, который, по сути, проходит через дополнительные строки кода, которые вы добавили. Служба Travis CI, используемая GitHub, проводит все модульные тесты в коде, который вы совершили, и проверяет, сколько строк кода было проверено модульными тестами, и если значительная часть вашего кода не была проверена (недостаточное покрытие), запрос на вытягивание отклоняется.
Так как же сделать модульный тест?
models/nn/abcgnn.py которая выполняет задачу классификации узлов. Затем вам нужно добавить модульный тест в tests/tasks/test_node_classification.py (или любая соответствующая задача, которую выполняет ваша модель).tests/tasks/test_node_classification.py совершите его вместе с вашими models/nn/abcgnn.py , и ваш запрос на вытягивание должен пройти. Cogdl разрабатывается и поддерживается Tsinghua, Zju, Damo Academy и zhipu.ai.
Основной командой разработчиков можно связаться по адресу [email protected].
Пожалуйста, процитируйте нашу статью, если вы найдете наш код или результаты, полезные для вашего исследования:
@inproceedings{cen2023cogdl,
title={CogDL: A Comprehensive Library for Graph Deep Learning},
author={Yukuo Cen and Zhenyu Hou and Yan Wang and Qibin Chen and Yizhen Luo and Zhongming Yu and Hengrui Zhang and Xingcheng Yao and Aohan Zeng and Shiguang Guo and Yuxiao Dong and Yang Yang and Peng Zhang and Guohao Dai and Yu Wang and Chang Zhou and Hongxia Yang and Jie Tang},
booktitle={Proceedings of the ACM Web Conference 2023 (WWW'23)},
year={2023}
}