Реализация реляционных сетей Pytorch - простой модуль нейронной сети для реляционных рассуждений
Реализовано и протестирован на задачу кадров.
Вроде Clevr является упрощенной версией Clevr. Это состоит из 10000 изображений и 20 вопросов (10 реляционных вопросов и 10 нереляционных вопросов) на каждое изображение. 6 цветов (красный, зеленый, синий, оранжевый, серый, желтый) присваиваются случайно выбранной форме (квадратная или круг) и помещают в изображение.
Нереляционные вопросы состоит из 3 подтипов:
Эти вопросы «нереляционные», потому что агент должен сосредоточиться только на определенном объекте.
Реляционные вопросы состоит из 3 подтипов:
Эти вопросы «реляционные», потому что агент должен учитывать отношения между объектами.
Вопросы кодируются в вектор размера 11: 6 для одного горячего вектора для определенного цвета среди 6 цветов, 2 для однопользового вектора реляционных/нереляционных вопросов. 3 для однопольтного вектора из 3 подтипов.

Т.е. с показанным образцом изображения мы можем генерировать нереляционные вопросы, такие как:
И реляционные вопросы:
Создать среду conda из файла environment.yml
$ conda env create -f environment.yml
Активировать среду
$ conda activate RN3
Если вы не используете Conda Установите Python 3 обычно и используйте pip install для установки оставшихся зависимостей. Список зависимостей можно найти в файле environment.yml .
$ ./run.sh
или
$ python sort_of_clevr_generator.py
для создания набора данных о себе и
$ python main.py
Чтобы тренировать модель бинарной RN. В качестве альтернативы использовать
$ python main.py --relation-type=ternary
Чтобы тренировать тройную модель RN.
В оригинальной статье задача какого-либо калерирования использовала отличную модель от задачи CLEVR. Однако, поскольку для вычисления CLEVR требуется гораздо меньше времени (сеть намного меньше), эта модель используется для какого-либо задачи.
| Реляционные сети (20 -я эпоха) | CNN + MLP (без RN, 100 -я эпоха) | |
|---|---|---|
| Нереляционный вопрос | 99% | 66% |
| Реляционный вопрос | 89% | 66% |
CNN + MLP произошел переосмысление учебных данных.
Relational Networks показывает гораздо лучшие результаты в реляционных вопросах и вопросах, не связанных с нерелиционированием.
@gngdb ускоряет модель на 10 раз.