관계 네트워크의 Pytorch 구현 - 관계형 추론을위한 간단한 신경망 모듈
일종의 클레버 작업에서 구현 및 테스트.
CLEVR은 CLEVR의 단순화 된 버전입니다. 이는 각 이미지 당 10000 개의 이미지와 20 개의 질문 (10 가지 관계 질문 및 10 가지 비 관계형 질문)으로 구성됩니다. 6 색 (빨간색, 녹색, 파란색, 주황색, 회색, 노란색)은 무작위로 선택된 모양 (정사각형 또는 원)에 할당되어 이미지에 배치됩니다.
비 관계형 질문은 3 개의 하위 유형으로 구성됩니다.
에이전트는 특정 객체에만 집중하기 만하면됩니다.
관계형 질문은 3 개의 하위 유형으로 구성됩니다.
이 질문은 에이전트가 객체 간의 관계를 고려해야하기 때문에 "관계"입니다.
질문은 6 가지 색상 중 특정 색상 중 1 인용 벡터에 대해 11 : 6 크기의 벡터로 인코딩됩니다. 3 개의 하위 유형의 1 인치 벡터의 경우 3.

즉, 샘플 이미지가 표시된 상태에서 다음과 같은 비 관계형 질문을 생성 할 수 있습니다.
그리고 관계 적 질문 :
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
Ternary RN 모델을 훈련시키기 위해.
원래 논문에서, Clevr STACT는 CLEVR 작업과 다른 모델을 사용했습니다. 그러나 Model 사용 CLEVR은 컴퓨팅에 훨씬 적은 시간이 필요하기 때문에 (네트워크는 훨씬 작습니다),이 모델은 CLEVR 작업에 사용됩니다.
| 관계형 네트워크 (20th Epoch) | CNN + MLP (RN, 100th Epoch 없음) | |
|---|---|---|
| 비 관계형 질문 | 99% | 66% |
| 관계형 질문 | 89% | 66% |
CNN + MLP는 훈련 데이터에 과적하도록 발생했습니다.
관계형 네트워크는 관계형 질문과 비 관계형 질문에서 훨씬 더 나은 결과를 보여줍니다.
@gngdb는 모델의 속도를 10 번 향상시킵니다.