├── radflow ├── commands │ ├── __init__.py │ └── server.py ├── data │ ├── __init__.py │ └── dataset_readers │ │ └── __init__.py ├── training │ └── __init__.py ├── utils │ ├── misc.py │ ├── __init__.py │ └── logger.py ├── __init__.py ├── modules │ ├── __init__.py │ ├── metrics.py │ └── linear.py └── models │ └── __init__.py ├── whatifs ├── frontend │ ├── .prettierrc.yaml │ ├── .prettierignore │ ├── src │ │ ├── react-app-env.d.ts │ │ ├── setupTests.ts │ │ ├── App.test.tsx │ │ ├── index.css │ │ ├── pages │ │ │ ├── Home │ │ │ │ └── index.tsx │ │ │ ├── Vevo │ │ │ │ └── index.tsx │ │ │ └── Wiki │ │ │ │ └── index.tsx │ │ ├── index.tsx │ │ ├── App.css │ │ ├── App.tsx │ │ └── components │ │ │ └── Header │ │ │ └── index.tsx │ ├── public │ │ ├── robots.txt │ │ ├── favicon.ico │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── index.html │ ├── Dockerfile │ ├── .gitignore │ ├── tsconfig.json │ └── package.json ├── .gitignore ├── teaser │ └── package.json ├── queries │ └── schema.graphql ├── backend │ ├── Dockerfile │ └── server.py ├── README.md └── docker-compose.yml ├── bin └── radflow ├── figures └── teaser.png ├── jina ├── flows │ └── query.yaml └── pods │ └── forecaster.yaml ├── .gitmodules ├── scripts ├── loop_dump.sh ├── start_job.sh ├── convert_traffic_data.py └── cache_inlinks.py ├── setup.py ├── .gitignore ├── .dockerignore ├── docs └── maintenance.md ├── environment.yml ├── expt ├── pure_time_series │ ├── vevo │ │ ├── 05_seasonal_arima │ │ │ └── config.yaml │ │ ├── 01_copying_previous_day │ │ │ └── config.yaml │ │ ├── 02_copying_previous_week │ │ │ └── config.yaml │ │ ├── 06_lstm │ │ │ └── config.yaml │ │ ├── 07_nbeats │ │ │ └── config.yaml │ │ └── 08_radflow_no_network │ │ │ └── config.yaml │ ├── wiki_univariate │ │ ├── 05_seasonal_arima │ │ │ └── config.yaml │ │ ├── 01_copying_previous_day │ │ │ └── config.yaml │ │ ├── 02_copying_previous_week │ │ │ └── config.yaml │ │ ├── 06_lstm │ │ │ └── config.yaml │ │ ├── 07_nbeats │ │ │ └── config.yaml │ │ └── 08_radflow_no_network │ │ │ └── config.yaml │ └── wiki_bivariate │ │ ├── 05_seasonal_arima │ │ └── config.yaml │ │ ├── 01_copying_previous_day │ │ └── config.yaml │ │ ├── 02_copying_previous_week │ │ └── config.yaml │ │ ├── 06_lstm │ │ └── config.yaml │ │ ├── 07_nbeats_desktop │ │ └── config.yaml │ │ ├── 07_nbeats_mobile │ │ └── config.yaml │ │ └── 08_radflow_no_network │ │ └── config.yaml ├── taxi │ ├── los_angeles │ │ ├── 01_copying_previous_step │ │ │ └── config.yaml │ │ ├── 09_tgcn │ │ │ └── config.yaml │ │ ├── 08_radflow_no_network │ │ │ └── config.yaml │ │ └── 15_radflow │ │ │ └── config.yaml │ └── shenzhen │ │ ├── 01_copying_previous_step │ │ └── config.yaml │ │ ├── 09_tgcn │ │ └── config.yaml │ │ ├── 08_radflow_no_network │ │ └── config.yaml │ │ └── 15_radflow │ │ └── config.yaml ├── network_aggregation │ ├── vevo_dynamic │ │ ├── imputation │ │ │ ├── one_hop │ │ │ │ ├── 11_lstm_mean │ │ │ │ │ └── config.yaml │ │ │ │ ├── 12_radflow_mean │ │ │ │ │ └── config.yaml │ │ │ │ ├── 14_radflow_gat │ │ │ │ │ └── config.yaml │ │ │ │ ├── 15_radflow │ │ │ │ │ └── config.yaml │ │ │ │ └── 13_radflow_graphsage │ │ │ │ │ └── config.yaml │ │ │ └── two_hops │ │ │ │ ├── 11_lstm_mean │ │ │ │ └── config.yaml │ │ │ │ ├── 14_radflow_gat │ │ │ │ └── config.yaml │ │ │ │ ├── 12_radflow_mean │ │ │ │ └── config.yaml │ │ │ │ ├── 15_radflow │ │ │ │ └── config.yaml │ │ │ │ └── 13_radflow_graphsage │ │ │ │ └── config.yaml │ │ └── forecast │ │ │ ├── one_hop │ │ │ └── 11_lstm_mean │ │ │ │ └── config.yaml │ │ │ └── two_hops │ │ │ └── 11_lstm_mean │ │ │ └── config.yaml │ ├── vevo_static │ │ ├── imputation │ │ │ ├── one_hop │ │ │ │ ├── 11_lstm_mean │ │ │ │ │ └── config.yaml │ │ │ │ ├── 12_radflow_mean │ │ │ │ │ └── config.yaml │ │ │ │ └── 14_radflow_gat │ │ │ │ │ └── config.yaml │ │ │ └── two_hops │ │ │ │ └── 11_lstm_mean │ │ │ │ └── config.yaml │ │ └── forecast │ │ │ ├── one_hop │ │ │ └── 11_lstm_mean │ │ │ │ └── config.yaml │ │ │ └── two_hops │ │ │ └── 11_lstm_mean │ │ │ └── config.yaml │ ├── wiki_univariate │ │ ├── imputation │ │ │ ├── one_hop │ │ │ │ └── 11_lstm_mean │ │ │ │ │ └── config.yaml │ │ │ └── two_hops │ │ │ │ └── 11_lstm_mean │ │ │ │ └── config.yaml │ │ └── forecast │ │ │ ├── one_hop │ │ │ └── 11_lstm_mean │ │ │ │ └── config.yaml │ │ │ └── two_hops │ │ │ └── 11_lstm_mean │ │ │ └── config.yaml │ └── wiki_bivariate │ │ ├── imputation │ │ ├── one_hop │ │ │ └── 11_lstm_mean │ │ │ │ └── config.yaml │ │ └── two_hops │ │ │ └── 11_lstm_mean │ │ │ └── config.yaml │ │ └── forecast │ │ ├── one_hop │ │ └── 11_lstm_mean │ │ │ └── config.yaml │ │ └── two_hops │ │ └── 11_lstm_mean │ │ └── config.yaml ├── missing_information │ ├── edges │ │ ├── vevo │ │ │ ├── no_hops │ │ │ │ ├── 20 │ │ │ │ │ └── config.yaml │ │ │ │ ├── 40 │ │ │ │ │ └── config.yaml │ │ │ │ ├── 60 │ │ │ │ │ └── config.yaml │ │ │ │ ├── 80 │ │ │ │ │ └── config.yaml │ │ │ │ └── 00 │ │ │ │ │ └── config.yaml │ │ │ └── one_hop │ │ │ │ ├── 20 │ │ │ │ └── config.yaml │ │ │ │ ├── 40 │ │ │ │ └── config.yaml │ │ │ │ ├── 60 │ │ │ │ └── config.yaml │ │ │ │ ├── 80 │ │ │ │ └── config.yaml │ │ │ │ └── 00 │ │ │ │ └── config.yaml │ │ └── wiki │ │ │ └── no_hops │ │ │ ├── 20 │ │ │ └── config.yaml │ │ │ ├── 40 │ │ │ └── config.yaml │ │ │ ├── 60 │ │ │ └── config.yaml │ │ │ ├── 80 │ │ │ └── config.yaml │ │ │ └── 00 │ │ │ └── config.yaml │ └── views │ │ ├── vevo │ │ ├── no_hops │ │ │ ├── 20 │ │ │ │ └── config.yaml │ │ │ ├── 40 │ │ │ │ └── config.yaml │ │ │ ├── 60 │ │ │ │ └── config.yaml │ │ │ ├── 80 │ │ │ │ └── config.yaml │ │ │ └── 00 │ │ │ │ └── config.yaml │ │ └── one_hop │ │ │ ├── 20 │ │ │ └── config.yaml │ │ │ ├── 40 │ │ │ └── config.yaml │ │ │ ├── 60 │ │ │ └── config.yaml │ │ │ ├── 80 │ │ │ └── config.yaml │ │ │ └── 00 │ │ │ └── config.yaml │ │ └── wiki │ │ └── no_hops │ │ └── 00 │ │ └── config.yaml ├── ablation_studies │ ├── vevo_dynamic │ │ ├── 16_radflow_h │ │ │ └── config.yaml │ │ ├── 17_radflow_p │ │ │ └── config.yaml │ │ ├── 18_radflow_q │ │ │ └── config.yaml │ │ ├── 19_radflow_hp │ │ │ └── config.yaml │ │ ├── 20_radflow_hpq │ │ │ └── config.yaml │ │ ├── 22_radflow_one_head │ │ │ └── config.yaml │ │ └── 21_radflow_no_final_proj │ │ │ └── config.yaml │ └── vevo_static │ │ ├── 16_radflow_h │ │ └── config.yaml │ │ ├── 17_radflow_p │ │ └── config.yaml │ │ ├── 18_radflow_q │ │ └── config.yaml │ │ ├── 19_radflow_hp │ │ └── config.yaml │ │ └── 20_radflow_hpq │ │ └── config.yaml └── counterfactuals │ └── vevo │ └── config.yaml └── nos_sandbox.md /radflow/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /whatifs/frontend/.prettierrc.yaml: -------------------------------------------------------------------------------- 1 | singleQuote: true 2 | -------------------------------------------------------------------------------- /whatifs/frontend/.prettierignore: -------------------------------------------------------------------------------- 1 | build 2 | node_modules 3 | -------------------------------------------------------------------------------- /radflow/data/__init__.py: -------------------------------------------------------------------------------- 1 | import radflow.data.dataset_readers 2 | -------------------------------------------------------------------------------- /bin/radflow: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | python -m radflow.commands "$@" 3 | -------------------------------------------------------------------------------- /whatifs/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dgraph/data 3 | dgraph/backups 4 | -------------------------------------------------------------------------------- /whatifs/frontend/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /radflow/training/__init__.py: -------------------------------------------------------------------------------- 1 | from .apex_trainer import ApexGradientDescentTrainer 2 | -------------------------------------------------------------------------------- /radflow/utils/misc.py: -------------------------------------------------------------------------------- 1 | def keystoint(x): 2 | return {int(k): v for k, v in x} 3 | -------------------------------------------------------------------------------- /figures/teaser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alasdairtran/radflow/HEAD/figures/teaser.png -------------------------------------------------------------------------------- /radflow/__init__.py: -------------------------------------------------------------------------------- 1 | import radflow.data 2 | import radflow.models 3 | import radflow.training 4 | -------------------------------------------------------------------------------- /radflow/utils/__init__.py: -------------------------------------------------------------------------------- 1 | from .logger import setup_logger 2 | from .misc import keystoint 3 | -------------------------------------------------------------------------------- /whatifs/teaser/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "http-server": "^0.12.3" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /radflow/modules/__init__.py: -------------------------------------------------------------------------------- 1 | from .linear import GehringLinear 2 | from .mixins import LoadStateDictWithPrefix 3 | -------------------------------------------------------------------------------- /whatifs/frontend/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /whatifs/frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alasdairtran/radflow/HEAD/whatifs/frontend/public/favicon.ico -------------------------------------------------------------------------------- /whatifs/frontend/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alasdairtran/radflow/HEAD/whatifs/frontend/public/logo192.png -------------------------------------------------------------------------------- /whatifs/frontend/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alasdairtran/radflow/HEAD/whatifs/frontend/public/logo512.png -------------------------------------------------------------------------------- /jina/flows/query.yaml: -------------------------------------------------------------------------------- 1 | !Flow 2 | with: 3 | port_expose: 44192 4 | pods: 5 | encoder: 6 | uses: jina/pods/forecaster.yaml 7 | -------------------------------------------------------------------------------- /radflow/data/dataset_readers/__init__.py: -------------------------------------------------------------------------------- 1 | from .network import NetworkReader 2 | from .taxi import TaxiReader 3 | from .taxi_2 import Taxi2Reader 4 | -------------------------------------------------------------------------------- /whatifs/frontend/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:14.13 2 | 3 | RUN mkdir -p /usr/src/app 4 | WORKDIR /usr/src/app 5 | COPY . /usr/src/app 6 | RUN yarn 7 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/apex"] 2 | path = lib/apex 3 | url = https://github.com/NVIDIA/apex 4 | ignore = untracked 5 | [submodule "wdsm2021"] 6 | path = thewebconf2021 7 | url = https://git.overleaf.com/5f03d7e3c5e80b0001882af6 8 | ignore = dirty 9 | -------------------------------------------------------------------------------- /radflow/models/__init__.py: -------------------------------------------------------------------------------- 1 | from .arima import ARIMA 2 | from .lstm import BaselineLSTM 3 | from .naive import NaiveForecaster 4 | from .nbeats import NBEATS 5 | from .radflow import RADflow 6 | from .radflow_vevo import RADflowVevo 7 | from .taxi import TGCN 8 | -------------------------------------------------------------------------------- /whatifs/frontend/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom/extend-expect'; 6 | -------------------------------------------------------------------------------- /whatifs/frontend/src/App.test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render } from '@testing-library/react'; 3 | import App from './App'; 4 | 5 | test('renders learn react link', () => { 6 | const { getByText } = render(); 7 | const linkElement = getByText(/learn react/i); 8 | expect(linkElement).toBeInTheDocument(); 9 | }); 10 | -------------------------------------------------------------------------------- /whatifs/queries/schema.graphql: -------------------------------------------------------------------------------- 1 | # Define Directives and index 2 | graph_id: int @index(int) . 3 | title: string @index(exact) . 4 | first_date: dateTime @index(day) . 5 | views: [int] . 6 | links_to: [uid] @reverse . 7 | 8 | # Define Types 9 | type Page { 10 | graph_id 11 | title 12 | first_date 13 | views 14 | links_to 15 | } 16 | -------------------------------------------------------------------------------- /jina/pods/forecaster.yaml: -------------------------------------------------------------------------------- 1 | !RadflowForecaster 2 | with: 3 | greetings: radflow-forecaster 4 | config_path: expt/pure_time_series/wiki_univariate/08_radflow_no_network/config.yaml 5 | model_path: expt/pure_time_series/wiki_univariate/08_radflow_no_network/serialization/model_state_epoch_9.th 6 | overrides: "" 7 | device: 0 8 | metas: 9 | name: forecaster 10 | py_modules: ../executors/forecaster.py 11 | workspace: ./ 12 | -------------------------------------------------------------------------------- /whatifs/frontend/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /whatifs/frontend/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /scripts/loop_dump.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | # For max CPU utilitization, each dump file should occupy exactly one CPU. No 5 | # point giving it more. On gadi we need to run this three times due to the max 6 | # queue size of 300. 7 | # Processes reaching the time limit will terminate with error code 271 8 | for i in {0..167}; do 9 | qsub -v SPLIT=$i -o dump-$i /g/data/v89/at3219/projects/radflow/scripts/start_job.sh 10 | sleep 2 11 | done 12 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import find_packages, setup 2 | 3 | setup(name='radflow', 4 | version='0.1', 5 | description='Network of sequences', 6 | url='https://github.com/alasdairtran/radflow', 7 | author='Alasdair Tran', 8 | author_email='alasdair.tran@anu.edu.au', 9 | license='MIT', 10 | packages=find_packages(), 11 | install_requires=[], 12 | scripts=['bin/radflow'], 13 | zip_safe=False) 14 | -------------------------------------------------------------------------------- /whatifs/backend/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM conda/miniconda3:latest 2 | 3 | # Building uvloop requries the C compiler in build-essential 4 | RUN apt-get update \ 5 | && apt-get install -yq --no-install-recommends build-essential \ 6 | && apt clean && rm -rf /var/lib/apt/lists/* 7 | 8 | RUN pip install -U --no-cache-dir \ 9 | ariadne \ 10 | uvicorn[standard] \ 11 | starlette \ 12 | pydgraph 13 | 14 | COPY . /backend/ 15 | WORKDIR /backend 16 | 17 | CMD uvicorn server:app 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .mypy_cache 3 | .pytest_cache 4 | .vscode 5 | .idea 6 | 7 | # Python 8 | __pycache__ 9 | *.ipynb_checkpoints 10 | *.pyc 11 | *.pylintrc 12 | *.pydocstylerc 13 | *.ipynb 14 | 15 | # Experimental files 16 | *.th 17 | *.pth 18 | 19 | # Packaging 20 | /dist 21 | /build 22 | *.egg-info 23 | 24 | # Latex 25 | *.aux 26 | *.bbl 27 | *.bcf 28 | *.blg 29 | *.fdb_latexmk 30 | *.fls 31 | *.log 32 | *.out 33 | *.run.xml 34 | *.synctex.gz 35 | *-blx.bib 36 | *.brf 37 | 38 | *.pdf 39 | /data 40 | /expt/**/serialization 41 | -------------------------------------------------------------------------------- /whatifs/frontend/src/pages/Home/index.tsx: -------------------------------------------------------------------------------- 1 | import { Flex } from '@chakra-ui/core'; 2 | import React from 'react'; 3 | import { useQuery } from 'urql'; 4 | 5 | const Home = () => { 6 | const output = useQuery({ 7 | query: ` 8 | query { hello } 9 | `, 10 | }); 11 | const res = output[0]; 12 | 13 | if (res.fetching) return

Loading...

; 14 | if (res.error) return

Errored!

; 15 | 16 | return ( 17 | 18 |

{res.data.hello}

19 |
20 | ); 21 | }; 22 | 23 | export default Home; 24 | -------------------------------------------------------------------------------- /whatifs/frontend/src/pages/Vevo/index.tsx: -------------------------------------------------------------------------------- 1 | import { Flex } from '@chakra-ui/core'; 2 | import React from 'react'; 3 | import { useQuery } from 'urql'; 4 | 5 | const Home = () => { 6 | const output = useQuery({ 7 | query: ` 8 | query { hello } 9 | `, 10 | }); 11 | const res = output[0]; 12 | 13 | if (res.fetching) return

Loading...

; 14 | if (res.error) return

Errored!

; 15 | 16 | return ( 17 | 18 |

Vevo {res.data.hello}

19 |
20 | ); 21 | }; 22 | 23 | export default Home; 24 | -------------------------------------------------------------------------------- /radflow/modules/metrics.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import torch 3 | 4 | 5 | def get_smape(targets, preds): 6 | 7 | if torch.is_tensor(targets): 8 | targets = targets.cpu().numpy() 9 | 10 | if torch.is_tensor(preds): 11 | preds = preds.cpu().numpy() 12 | 13 | # percentage error, zero if both true and pred are zero 14 | numerator = np.abs(targets - preds) 15 | denominator = (np.abs(targets) + np.abs(preds)) 16 | daily_errors_arr = 200 * np.nan_to_num(numerator / denominator) 17 | signed_err = preds - targets 18 | return daily_errors_arr, signed_err 19 | -------------------------------------------------------------------------------- /whatifs/frontend/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | import './index.css'; 5 | import * as serviceWorker from './serviceWorker'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root') 12 | ); 13 | 14 | // If you want your app to work offline and load faster, you can change 15 | // unregister() to register() below. Note this comes with some pitfalls. 16 | // Learn more about service workers: https://bit.ly/CRA-PWA 17 | serviceWorker.unregister(); 18 | -------------------------------------------------------------------------------- /scripts/start_job.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #PBS -l ncpus=4 3 | #PBS -l walltime=48:00:00 4 | #PBS -l mem=16GB 5 | #PBS -l jobfs=20MB 6 | #PBS -P v89 7 | #PBS -q normal 8 | #PBS -l other=gdata1 9 | #PBS -l storage=scratch/v89+gdata/v89 10 | #PBS -M alasdair.tran@anu.edu.au 11 | #PBS -N extract-wiki 12 | #PBS -j oe 13 | #PBS -m abe 14 | #PBS -l wd 15 | 16 | source $HOME/.bashrc 17 | conda activate radflow 18 | cd /g/data/v89/at3219/projects/radflow 19 | DUMP=/g/data/v89/at3219/wikidump 20 | OUT=/g/data/v89/at3219/projects/radflow/results 21 | 22 | python scripts/extract_graph.py -s $SPLIT -d $DUMP -o $OUT -n 4 23 | -------------------------------------------------------------------------------- /whatifs/frontend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "esModuleInterop": true, 12 | "allowSyntheticDefaultImports": true, 13 | "strict": true, 14 | "forceConsistentCasingInFileNames": true, 15 | "module": "esnext", 16 | "moduleResolution": "node", 17 | "resolveJsonModule": true, 18 | "isolatedModules": true, 19 | "noEmit": true, 20 | "jsx": "react" 21 | }, 22 | "include": [ 23 | "src" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /whatifs/frontend/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .mypy_cache 3 | .pytest_cache 4 | .vscode 5 | .idea 6 | 7 | # Python 8 | __pycache__ 9 | *.ipynb_checkpoints 10 | *.pyc 11 | *.pylintrc 12 | *.pydocstylerc 13 | *.ipynb 14 | 15 | # Experimental files 16 | *.th 17 | *.pth 18 | 19 | # Packaging 20 | /dist 21 | /build 22 | *.egg-info 23 | 24 | # Latex 25 | *.aux 26 | *.bbl 27 | *.bcf 28 | *.blg 29 | *.fdb_latexmk 30 | *.fls 31 | *.log 32 | *.out 33 | *.run.xml 34 | *.synctex.gz 35 | *-blx.bib 36 | *.brf 37 | 38 | *.pdf 39 | /data 40 | /expt/**/serialization 41 | 42 | /wdsm2021 43 | /demo 44 | /docs 45 | /lib 46 | 47 | # Include relevant model files 48 | !/expt/pure_time_series/wiki_univariate/08_radflow_no_network/serialization/model_state_epoch_9.th 49 | -------------------------------------------------------------------------------- /radflow/utils/logger.py: -------------------------------------------------------------------------------- 1 | 2 | import logging 3 | 4 | LEVEL_DICT = { 5 | 'debug': logging.DEBUG, 6 | 'info': logging.INFO, 7 | 'warning': logging.WARNING, 8 | 'error': logging.ERROR, 9 | } 10 | 11 | 12 | def setup_logger(mode='info'): 13 | """Initialize logger. Mode can be: info, debug, warning, stackdriver.""" 14 | logger = logging.getLogger() 15 | 16 | if (logger.hasHandlers()): 17 | logger.handlers.clear() 18 | 19 | logger.setLevel(LEVEL_DICT[mode]) 20 | handler = logging.StreamHandler() 21 | 22 | # Format log messages 23 | formatter = logging.Formatter('%(levelname)-8s %(message)s') 24 | handler.setFormatter(formatter) 25 | logger.addHandler(handler) 26 | 27 | return logger 28 | -------------------------------------------------------------------------------- /whatifs/frontend/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | height: 40vmin; 7 | pointer-events: none; 8 | } 9 | 10 | @media (prefers-reduced-motion: no-preference) { 11 | .App-logo { 12 | animation: App-logo-spin infinite 20s linear; 13 | } 14 | } 15 | 16 | .App-header { 17 | background-color: #282c34; 18 | min-height: 100vh; 19 | display: flex; 20 | flex-direction: column; 21 | align-items: center; 22 | justify-content: center; 23 | font-size: calc(10px + 2vmin); 24 | color: white; 25 | } 26 | 27 | .App-link { 28 | color: #61dafb; 29 | } 30 | 31 | @keyframes App-logo-spin { 32 | from { 33 | transform: rotate(0deg); 34 | } 35 | to { 36 | transform: rotate(360deg); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /whatifs/README.md: -------------------------------------------------------------------------------- 1 | # Demo 2 | 3 | ```sh 4 | # Start only the zero container (don't start alpha yet) 5 | docker-compose up zero 6 | 7 | # The bulk loader takes 50 minutes to load 600M edges. But currently the 8 | # mapper crashes due to the OOM. 9 | docker exec -it $ZERO_CONTAINER_ID dgraph bulk \ 10 | -f /backups/wiki.rdf \ 11 | -s /backups/schema.graphql \ 12 | --map_shards=1 \ 13 | --reduce_shards=1 \ 14 | --http localhost:8000 \ 15 | --zero localhost:5080 16 | 17 | mv dgraph/data/out/0/p dgraph/data/p 18 | rm -rfv dgraph/data/out 19 | 20 | # Shut down zero and start whole server 21 | docker-compose up 22 | 23 | # If we need to live load later. Takes 2.5 hours to load 635M edges 24 | docker exec -it $RATEL_CONTAINER_ID dgraph live -f /backups/wiki.rdf --alpha alpha:9080 --zero zero:5080 -c 1 25 | ``` 26 | -------------------------------------------------------------------------------- /docs/maintenance.md: -------------------------------------------------------------------------------- 1 | # Maintenance 2 | 3 | We document some useful code for maintenance. You probably don't need to worry 4 | about this. 5 | 6 | ```sh 7 | # Back up database 8 | mkdir data/mongobackups 9 | mongodump --db vevo --host=localhost --port=27017 --gzip --archive=data/mongobackups/vevo-2020-07-23.gz 10 | mongodump --db wiki --host=localhost --port=27017 --gzip --archive=data/mongobackups/wiki-2020-07-23.gz 11 | 12 | # Restore database 13 | mongorestore --db vevo --host=localhost --port=27017 --drop --gzip --archive=data/mongobackups/vevo-2020-07-23.gz 14 | mongorestore --db wiki --host=localhost --port=27017 --drop --gzip --archive=data/mongobackups/wiki-2020-07-23.gz 15 | 16 | # Compress experiment and data directories 17 | tar -zcvf expt.tar.gz expt 18 | tar -zcvf data.tar.gz data 19 | 20 | # Upload to Nectar Containers 21 | swift upload radflow data.tar.gz --info -S 1073741824 22 | swift upload radflow expt.tar.gz --info -S 1073741824 23 | ``` 24 | -------------------------------------------------------------------------------- /environment.yml: -------------------------------------------------------------------------------- 1 | name: radflow 2 | channels: 3 | - pytorch 4 | - defaults 5 | - conda-forge 6 | dependencies: 7 | - autopep8=1.5.4 8 | - cudatoolkit=10.2.89 9 | - cython=0.29.21 10 | - ipykernel=5.3.4 11 | - matplotlib=3.3.1 12 | - mypy=0.782 13 | - numpy=1.19.1 14 | - pandas=1.1.1 15 | - pip=20.2.2 16 | - pytorch=1.6.0 17 | - python=3.8.5 18 | - pyyaml=5.3.1 19 | - redis-py=3.5.3 20 | - torchvision=0.7.0 21 | - pip: 22 | - allennlp==1.1.0 23 | - pmdarima===1.7.0 24 | - bz2file==0.98 25 | - beautifulsoup4==4.9.1 26 | - docopt==0.6.2 27 | - docker==4.3.1 28 | - jina==0.5.0 29 | - overrides==3.1.0 30 | - ptvsd==4.3.2 31 | - pudb==2019.2 32 | - pyarrow==1.0.1 33 | - pymongo==3.11.0 34 | - python-igraph==0.8.3 35 | - redisgraph==2.1.4 36 | - schema==0.7.2 37 | - seaborn==0.10.1 38 | - tensorboard==2.3.0 39 | - tqdm==4.48.2 40 | - wget==3.2 41 | - wordcloud==1.8.0 42 | -------------------------------------------------------------------------------- /expt/pure_time_series/vevo/05_seasonal_arima/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: arima 13 | forecast_length: 7 14 | data_loader: 15 | batch_size: 32 16 | shuffle: false 17 | batches_per_epoch: 10000 18 | validation_data_loader: 19 | batch_size: 32 20 | trainer: 21 | type: apex_gradient_descent 22 | use_amp: false 23 | apex_opt_level: O1 24 | keep_batchnorm_fp32: None 25 | optimizer: 26 | type: adamw 27 | lr: 0.0001 28 | weight_decay: 0.0001 29 | learning_rate_scheduler: 30 | type: linear_with_warmup 31 | warmup_steps: 5000 32 | last_epoch: -1 33 | num_epochs: 10 34 | cuda_device: 0 35 | grad_norm: 0.1 36 | patience: 10 37 | validation_metric: "-loss" 38 | tensorboard_writer: 39 | summary_interval: 100 40 | should_log_parameter_statistics: false 41 | -------------------------------------------------------------------------------- /expt/taxi/los_angeles/01_copying_previous_step/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | n_nodes: 207 5 | train_data_path: train 6 | validation_data_path: valid 7 | test_data_path: test 8 | vocabulary: 9 | type: empty 10 | model: 11 | type: naive 12 | method: previous_day 13 | data_path: data/taxi/los.h5 14 | series_len: 2016 15 | forecast_length: 12 16 | backcast_length: 72 17 | test_lengths: [12] 18 | data_loader: 19 | batch_size: 64 20 | shuffle: false 21 | batches_per_epoch: 10000 22 | validation_data_loader: 23 | batch_size: 64 24 | trainer: 25 | type: apex_gradient_descent 26 | use_amp: false 27 | apex_opt_level: O1 28 | keep_batchnorm_fp32: None 29 | optimizer: 30 | type: adamw 31 | lr: 0.0001 32 | weight_decay: 0.0001 33 | learning_rate_scheduler: 34 | type: linear_with_warmup 35 | warmup_steps: 5000 36 | last_epoch: -1 37 | num_epochs: 10 38 | cuda_device: 0 39 | grad_norm: 0.1 40 | patience: 10 41 | validation_metric: "-smape_12" 42 | tensorboard_writer: 43 | summary_interval: 100 44 | should_log_parameter_statistics: false 45 | -------------------------------------------------------------------------------- /expt/taxi/shenzhen/01_copying_previous_step/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | n_nodes: 156 5 | train_data_path: train 6 | validation_data_path: valid 7 | test_data_path: test 8 | vocabulary: 9 | type: empty 10 | model: 11 | type: naive 12 | method: previous_day 13 | data_path: data/taxi/sz.h5 14 | series_len: 2976 15 | forecast_length: 4 16 | backcast_length: 24 17 | test_lengths: [4] 18 | ignore_test_zeros: true 19 | data_loader: 20 | batch_size: 64 21 | shuffle: false 22 | batches_per_epoch: 10000 23 | validation_data_loader: 24 | batch_size: 64 25 | trainer: 26 | type: apex_gradient_descent 27 | use_amp: false 28 | apex_opt_level: O1 29 | keep_batchnorm_fp32: None 30 | optimizer: 31 | type: adamw 32 | lr: 0.0001 33 | weight_decay: 0.0001 34 | learning_rate_scheduler: 35 | type: linear_with_warmup 36 | warmup_steps: 5000 37 | last_epoch: -1 38 | num_epochs: 10 39 | cuda_device: 0 40 | grad_norm: 0.1 41 | patience: 10 42 | validation_metric: "-smape_4" 43 | tensorboard_writer: 44 | summary_interval: 100 45 | should_log_parameter_statistics: false 46 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_univariate/05_seasonal_arima/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: arima 13 | data_path: ./data/wiki/wiki.hdf5 14 | forecast_length: 28 15 | backcast_length: 112 16 | test_lengths: [7, 14, 21, 28] 17 | data_loader: 18 | batch_size: 32 19 | shuffle: false 20 | batches_per_epoch: 10000 21 | validation_data_loader: 22 | batch_size: 32 23 | trainer: 24 | type: apex_gradient_descent 25 | use_amp: false 26 | apex_opt_level: O1 27 | keep_batchnorm_fp32: None 28 | optimizer: 29 | type: adamw 30 | lr: 0.0001 31 | weight_decay: 0.0001 32 | learning_rate_scheduler: 33 | type: linear_with_warmup 34 | warmup_steps: 5000 35 | last_epoch: -1 36 | num_epochs: 10 37 | cuda_device: 0 38 | grad_norm: 0.1 39 | patience: 10 40 | validation_metric: "-loss" 41 | tensorboard_writer: 42 | summary_interval: 100 43 | should_log_parameter_statistics: false 44 | -------------------------------------------------------------------------------- /nos_sandbox.md: -------------------------------------------------------------------------------- 1 | --- 2 | jupyter: 3 | jupytext: 4 | text_representation: 5 | extension: .md 6 | format_name: markdown 7 | format_version: '1.1' 8 | jupytext_version: 1.2.1 9 | kernelspec: 10 | display_name: Python 3 11 | language: python 12 | name: python3 13 | --- 14 | 15 | ```python 16 | import pandas as pd 17 | import numpy as np 18 | import matplotlib.pyplot as plt 19 | %matplotlib inline 20 | ``` 21 | 22 | ```python 23 | df = pd.read_csv('data/persistent_network.csv') 24 | df.head() 25 | ``` 26 | 27 | ```python 28 | len(set(df['Target'])) 29 | ``` 30 | 31 | ```python 32 | import json 33 | 34 | with open('data/vevo_full_series.json') as f: 35 | corpus = json.load(f) 36 | ``` 37 | 38 | ```python 39 | # Let's find the spikes 40 | for k, series in corpus.items(): 41 | series = np.array(series) 42 | series += 1 # Avoid division by zero 43 | diff = series[1:] / series[:-1] 44 | if np.max(diff) > 100: 45 | print(k, np.max(diff), np.argmax(diff)) 46 | ``` 47 | 48 | ```python 49 | plt.plot(corpus['5393']) 50 | ``` 51 | 52 | ```python 53 | plt.plot(corpus['48365']) 54 | ``` 55 | 56 | ```python 57 | plt.plot(corpus['55559']) 58 | ``` 59 | 60 | ```python 61 | 62 | ``` 63 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_bivariate/05_seasonal_arima/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: arima 13 | data_path: ./data/wiki/wiki.hdf5 14 | multi_views_path: ./data/wiki/views_split.hdf5 15 | forecast_length: 28 16 | backcast_length: 112 17 | test_lengths: [7, 14, 21, 28] 18 | data_loader: 19 | batch_size: 32 20 | shuffle: false 21 | batches_per_epoch: 10000 22 | validation_data_loader: 23 | batch_size: 32 24 | trainer: 25 | type: apex_gradient_descent 26 | use_amp: false 27 | apex_opt_level: O1 28 | keep_batchnorm_fp32: None 29 | optimizer: 30 | type: adamw 31 | lr: 0.0001 32 | weight_decay: 0.0001 33 | learning_rate_scheduler: 34 | type: linear_with_warmup 35 | warmup_steps: 5000 36 | last_epoch: -1 37 | num_epochs: 10 38 | cuda_device: 0 39 | grad_norm: 0.1 40 | patience: 10 41 | validation_metric: "-loss" 42 | tensorboard_writer: 43 | summary_interval: 100 44 | should_log_parameter_statistics: false 45 | -------------------------------------------------------------------------------- /whatifs/frontend/src/App.tsx: -------------------------------------------------------------------------------- 1 | import { CSSReset, ThemeProvider } from '@chakra-ui/core'; 2 | import { cacheExchange } from '@urql/exchange-graphcache'; 3 | import React from 'react'; 4 | import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; 5 | import { Client, dedupExchange, fetchExchange, Provider } from 'urql'; 6 | import Header from './components/Header'; 7 | import Home from './pages/Home'; 8 | import Vevo from './pages/Vevo'; 9 | import Wiki from './pages/Wiki'; 10 | 11 | const cache = cacheExchange({}); 12 | 13 | const client = new Client({ 14 | url: 15 | process.env.NODE_ENV === 'production' 16 | ? 'https://api.radflow.ml/' 17 | : 'http://localhost:8205/', 18 | exchanges: [dedupExchange, cache, fetchExchange], 19 | }); 20 | 21 | function App() { 22 | return ( 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | ); 43 | } 44 | 45 | export default App; 46 | -------------------------------------------------------------------------------- /expt/pure_time_series/vevo/01_copying_previous_day/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: naive 13 | method: previous_day 14 | forecast_length: 7 15 | backcast_length: 42 16 | data_loader: 17 | batch_size: 64 18 | shuffle: false 19 | batches_per_epoch: 10000 20 | validation_data_loader: 21 | batch_size: 64 22 | trainer: 23 | type: apex_gradient_descent 24 | use_amp: false 25 | apex_opt_level: O1 26 | keep_batchnorm_fp32: None 27 | optimizer: 28 | type: adamw 29 | lr: 0.0001 30 | weight_decay: 0.0001 31 | parameter_groups: 32 | - - - project_in 33 | - {} 34 | - - - ^decoder.layers.0 35 | - {} 36 | - - - ^decoder.layers.1 37 | - {} 38 | - - - ^decoder.layers.2 39 | - {} 40 | - - - ^fc 41 | - {} 42 | learning_rate_scheduler: 43 | type: linear_with_warmup 44 | warmup_steps: 5000 45 | last_epoch: -1 46 | num_epochs: 10 47 | cuda_device: 0 48 | grad_norm: 0.1 49 | patience: 10 50 | validation_metric: "-loss" 51 | tensorboard_writer: 52 | summary_interval: 100 53 | should_log_parameter_statistics: false 54 | -------------------------------------------------------------------------------- /expt/pure_time_series/vevo/02_copying_previous_week/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: naive 13 | method: previous_week 14 | forecast_length: 7 15 | backcast_length: 42 16 | data_loader: 17 | batch_size: 64 18 | shuffle: false 19 | batches_per_epoch: 10000 20 | validation_data_loader: 21 | batch_size: 64 22 | trainer: 23 | type: apex_gradient_descent 24 | use_amp: false 25 | apex_opt_level: O1 26 | keep_batchnorm_fp32: None 27 | optimizer: 28 | type: adamw 29 | lr: 0.0001 30 | weight_decay: 0.0001 31 | parameter_groups: 32 | - - - project_in 33 | - {} 34 | - - - ^decoder.layers.0 35 | - {} 36 | - - - ^decoder.layers.1 37 | - {} 38 | - - - ^decoder.layers.2 39 | - {} 40 | - - - ^fc 41 | - {} 42 | learning_rate_scheduler: 43 | type: linear_with_warmup 44 | warmup_steps: 5000 45 | last_epoch: -1 46 | num_epochs: 10 47 | cuda_device: 0 48 | grad_norm: 0.1 49 | patience: 10 50 | validation_metric: "-loss" 51 | tensorboard_writer: 52 | summary_interval: 100 53 | should_log_parameter_statistics: false 54 | -------------------------------------------------------------------------------- /expt/taxi/los_angeles/09_tgcn/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: taxi_2 4 | series_path: data/taxi/los_speed.csv # 2016 points at 5m intervals (7 days) 5 | seq_len: 36 6 | pre_len: 12 7 | train_data_path: train 8 | validation_data_path: valid 9 | test_data_path: test 10 | vocabulary: 11 | type: empty 12 | model: 13 | type: tgcn 14 | adj_path: data/taxi/los_adj.csv # 207 roads 15 | hidden_size: 292 16 | forecast_len: 12 17 | initializer: 18 | regexes: 19 | - - ^W_out.weight 20 | - type: normal 21 | mean: 1 22 | - - ^b_out 23 | - normal 24 | - - ^tgcn.*weight 25 | - xavier_uniform 26 | data_loader: 27 | batch_size: 64 28 | shuffle: false 29 | batches_per_epoch: 10000 30 | validation_data_loader: 31 | batch_size: 1024 # current T-GCN metrics only work when we there's only one test batch 32 | trainer: 33 | type: apex_gradient_descent 34 | use_amp: false 35 | apex_opt_level: O1 36 | keep_batchnorm_fp32: None 37 | optimizer: 38 | type: adamw 39 | lr: 0.0001 40 | weight_decay: 0.0001 41 | learning_rate_scheduler: 42 | type: linear_with_warmup 43 | warmup_steps: 5000 44 | last_epoch: -1 45 | num_epochs: 10 46 | cuda_device: 0 47 | patience: 1000 48 | validation_metric: "-smape_12" 49 | tensorboard_writer: 50 | summary_interval: 100 51 | should_log_parameter_statistics: false 52 | -------------------------------------------------------------------------------- /scripts/convert_traffic_data.py: -------------------------------------------------------------------------------- 1 | import h5py 2 | import numpy as np 3 | import pandas as pd 4 | 5 | 6 | def convert_data(data): 7 | speeds = pd.read_csv(f'data/taxi/{data}_speed.csv').to_numpy().transpose() 8 | n_roads, n_steps = speeds.shape 9 | # speeds.shape = [n_roads, n_steps] 10 | 11 | A = pd.read_csv(f'data/taxi/{data}_adj.csv', header=None).to_numpy() 12 | # A.shape = [n_roads, n_roads] 13 | 14 | data_path = f'data/taxi/{data}.h5' 15 | data_f = h5py.File(data_path, 'a') 16 | 17 | data_f.create_dataset('views', dtype=np.float64, data=speeds) 18 | 19 | int32_dt = h5py.vlen_dtype(np.dtype('int32')) 20 | edges = data_f.create_dataset('edges', (n_roads, n_steps), int32_dt) 21 | 22 | bool_dt = h5py.vlen_dtype(np.dtype('bool')) 23 | masks = data_f.create_dataset('masks', (n_roads, n_steps), bool_dt) 24 | 25 | max_edges = 0 26 | for i in range(n_roads): 27 | neighs = A[i].nonzero()[0][None, :] 28 | # neighs.shape == [1, max_neighs] 29 | 30 | neighs = neighs.repeat(n_steps, axis=0) 31 | # neighs.shape == [n_steps, max_neighs] 32 | 33 | edges[i] = neighs 34 | max_edges = max(neighs.shape[1], max_edges) 35 | 36 | masks[i] = np.zeros((n_steps, neighs.shape[1])) 37 | 38 | 39 | def main(): 40 | convert_data('los') # max 26 edges 41 | convert_data('sz') # max 6 edges 42 | 43 | 44 | if __name__ == '__main__': 45 | main() 46 | -------------------------------------------------------------------------------- /expt/pure_time_series/vevo/06_lstm/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | agg_type: none 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 164 17 | dropout: 0.1 18 | backcast_length: 42 19 | forecast_length: 7 20 | test_lengths: [7] 21 | initializer: 22 | regexes: 23 | - - ^decoder.weight* 24 | - orthogonal 25 | - - ^decoder.bias* 26 | - zero 27 | data_loader: 28 | batch_size: 64 29 | shuffle: false 30 | batches_per_epoch: 10000 31 | validation_data_loader: 32 | batch_size: 64 33 | trainer: 34 | type: apex_gradient_descent 35 | use_amp: false 36 | apex_opt_level: O1 37 | keep_batchnorm_fp32: None 38 | optimizer: 39 | type: adamw 40 | lr: 0.0001 41 | weight_decay: 0.0001 42 | parameter_groups: 43 | - - - ^decoder 44 | - {} 45 | - - - ^fc 46 | - {} 47 | learning_rate_scheduler: 48 | type: linear_with_warmup 49 | warmup_steps: 5000 50 | last_epoch: -1 51 | num_epochs: 10 52 | cuda_device: 0 53 | grad_norm: 0.1 54 | patience: 10 55 | validation_metric: "-loss" 56 | tensorboard_writer: 57 | summary_interval: 100 58 | should_log_parameter_statistics: false 59 | -------------------------------------------------------------------------------- /expt/taxi/shenzhen/09_tgcn/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: taxi_2 4 | series_path: data/taxi/sz_speed.csv # 2976 points at 15m intervals (31 days) 5 | seq_len: 24 6 | pre_len: 4 7 | train_data_path: train 8 | validation_data_path: valid 9 | test_data_path: test 10 | vocabulary: 11 | type: empty 12 | model: 13 | type: tgcn 14 | adj_path: data/taxi/sz_adj.csv # 156 roads 15 | hidden_size: 294 16 | forecast_len: 4 17 | ignore_test_zeros: true 18 | initializer: 19 | regexes: 20 | - - ^W_out.weight 21 | - type: normal 22 | mean: 1 23 | - - ^b_out 24 | - normal 25 | - - ^tgcn.*weight 26 | - xavier_uniform 27 | data_loader: 28 | batch_size: 64 29 | shuffle: false 30 | batches_per_epoch: 10000 31 | validation_data_loader: 32 | batch_size: 1024 # current T-GCN metrics only work when we there's only one test batch 33 | trainer: 34 | type: apex_gradient_descent 35 | use_amp: false 36 | apex_opt_level: O1 37 | keep_batchnorm_fp32: None 38 | optimizer: 39 | type: adamw 40 | lr: 0.001 # seems that T-GCN fails to converge on lower learning rate 41 | weight_decay: 0.001 42 | learning_rate_scheduler: 43 | type: linear_with_warmup 44 | warmup_steps: 5000 45 | last_epoch: -1 46 | num_epochs: 10 47 | cuda_device: 0 48 | patience: 1000 49 | validation_metric: "-smape_4" 50 | tensorboard_writer: 51 | summary_interval: 100 52 | should_log_parameter_statistics: false 53 | -------------------------------------------------------------------------------- /whatifs/frontend/src/pages/Wiki/index.tsx: -------------------------------------------------------------------------------- 1 | // import './index.css'; 2 | import { Selection } from 'd3'; 3 | import React, { useEffect, useRef, useState } from 'react'; 4 | import { useClient } from 'urql'; 5 | 6 | interface DataType { 7 | __typename: string; 8 | } 9 | 10 | const dimensions = { 11 | width: 1200, 12 | height: 600, 13 | marginLeft: 50, 14 | marginBottom: 50, 15 | candleWidth: 5, 16 | }; 17 | 18 | const QUERY = ` 19 | { 20 | people { 21 | firstName 22 | lastName 23 | age 24 | fullName 25 | } 26 | } 27 | `; 28 | 29 | const Dashboard: React.FC = () => { 30 | const ref = useRef(null); 31 | const [selection, setSelection] = useState>(null); 37 | 38 | const [data, setData] = useState(); 39 | const client = useClient(); 40 | 41 | useEffect(() => { 42 | client 43 | .query(QUERY) 44 | .toPromise() 45 | .then((result) => { 46 | console.log(result.data); 47 | }); 48 | }, []); 49 | 50 | useEffect(() => { 51 | if (selection && data) { 52 | selection.selectAll('*').remove(); 53 | 54 | selection 55 | .attr('width', dimensions.width) 56 | .attr('height', dimensions.height); 57 | } 58 | }, [selection, data]); 59 | 60 | return ( 61 |
62 | 63 |
64 | ); 65 | }; 66 | 67 | export default Dashboard; 68 | -------------------------------------------------------------------------------- /whatifs/frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "frontend", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@chakra-ui/core": "^0.8.0", 7 | "@emotion/core": "^10.0.35", 8 | "@emotion/styled": "^10.0.27", 9 | "@testing-library/jest-dom": "^4.2.4", 10 | "@testing-library/react": "^9.3.2", 11 | "@testing-library/user-event": "^7.1.2", 12 | "@types/jest": "^24.0.0", 13 | "@types/node": "^12.0.0", 14 | "@types/react": "^16.9.0", 15 | "@types/react-dom": "^16.9.0", 16 | "@urql/exchange-graphcache": "^3.1.4", 17 | "d3": "^6.2.0", 18 | "emotion-theming": "^10.0.27", 19 | "graphql": "^15.3.0", 20 | "react": "^16.13.1", 21 | "react-dom": "^16.13.1", 22 | "react-router-dom": "^5.2.0", 23 | "react-scripts": "3.4.3", 24 | "typescript": "~3.7.2", 25 | "urql": "^1.10.1" 26 | }, 27 | "scripts": { 28 | "start": "react-scripts start", 29 | "build": "react-scripts build", 30 | "test": "react-scripts test", 31 | "eject": "react-scripts eject" 32 | }, 33 | "eslintConfig": { 34 | "extends": "react-app" 35 | }, 36 | "browserslist": { 37 | "production": [ 38 | ">0.2%", 39 | "not dead", 40 | "not op_mini all" 41 | ], 42 | "development": [ 43 | "last 1 chrome version", 44 | "last 1 firefox version", 45 | "last 1 safari version" 46 | ] 47 | }, 48 | "devDependencies": { 49 | "@types/d3": "^5.16.3", 50 | "@types/react-router-dom": "^5.1.6" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_univariate/01_copying_previous_day/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: naive 13 | method: previous_day 14 | data_path: ./data/wiki/wiki.hdf5 15 | series_len: 1827 16 | backcast_length: 112 17 | forecast_length: 28 18 | test_lengths: [7, 14, 21, 28] 19 | data_loader: 20 | batch_size: 64 21 | shuffle: false 22 | batches_per_epoch: 10000 23 | validation_data_loader: 24 | batch_size: 64 25 | trainer: 26 | type: apex_gradient_descent 27 | use_amp: false 28 | apex_opt_level: O1 29 | keep_batchnorm_fp32: None 30 | optimizer: 31 | type: adamw 32 | lr: 0.0001 33 | weight_decay: 0.0001 34 | parameter_groups: 35 | - - - project_in 36 | - {} 37 | - - - ^decoder.layers.0 38 | - {} 39 | - - - ^decoder.layers.1 40 | - {} 41 | - - - ^decoder.layers.2 42 | - {} 43 | - - - ^fc 44 | - {} 45 | learning_rate_scheduler: 46 | type: linear_with_warmup 47 | warmup_steps: 5000 48 | last_epoch: -1 49 | num_epochs: 10 50 | cuda_device: 0 51 | grad_norm: 0.1 52 | patience: 10 53 | validation_metric: "-loss" 54 | tensorboard_writer: 55 | summary_interval: 100 56 | should_log_parameter_statistics: false 57 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_univariate/02_copying_previous_week/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: naive 13 | method: previous_week 14 | data_path: ./data/wiki/wiki.hdf5 15 | series_len: 1827 16 | backcast_length: 112 17 | forecast_length: 28 18 | test_lengths: [7, 14, 21, 28] 19 | data_loader: 20 | batch_size: 64 21 | shuffle: false 22 | batches_per_epoch: 10000 23 | validation_data_loader: 24 | batch_size: 64 25 | trainer: 26 | type: apex_gradient_descent 27 | use_amp: false 28 | apex_opt_level: O1 29 | keep_batchnorm_fp32: None 30 | optimizer: 31 | type: adamw 32 | lr: 0.0001 33 | weight_decay: 0.0001 34 | parameter_groups: 35 | - - - project_in 36 | - {} 37 | - - - ^decoder.layers.0 38 | - {} 39 | - - - ^decoder.layers.1 40 | - {} 41 | - - - ^decoder.layers.2 42 | - {} 43 | - - - ^fc 44 | - {} 45 | learning_rate_scheduler: 46 | type: linear_with_warmup 47 | warmup_steps: 5000 48 | last_epoch: -1 49 | num_epochs: 10 50 | cuda_device: 0 51 | grad_norm: 0.1 52 | patience: 10 53 | validation_metric: "-loss" 54 | tensorboard_writer: 55 | summary_interval: 100 56 | should_log_parameter_statistics: false 57 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_bivariate/01_copying_previous_day/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: naive 13 | method: previous_day 14 | data_path: ./data/wiki/wiki.hdf5 15 | multi_views_path: ./data/wiki/views_split.hdf5 16 | series_len: 1827 17 | backcast_length: 112 18 | forecast_length: 28 19 | test_lengths: [7, 14, 21, 28] 20 | data_loader: 21 | batch_size: 64 22 | shuffle: false 23 | batches_per_epoch: 10000 24 | validation_data_loader: 25 | batch_size: 64 26 | trainer: 27 | type: apex_gradient_descent 28 | use_amp: false 29 | apex_opt_level: O1 30 | keep_batchnorm_fp32: None 31 | optimizer: 32 | type: adamw 33 | lr: 0.0001 34 | weight_decay: 0.0001 35 | parameter_groups: 36 | - - - project_in 37 | - {} 38 | - - - ^decoder.layers.0 39 | - {} 40 | - - - ^decoder.layers.1 41 | - {} 42 | - - - ^decoder.layers.2 43 | - {} 44 | - - - ^fc 45 | - {} 46 | learning_rate_scheduler: 47 | type: linear_with_warmup 48 | warmup_steps: 5000 49 | last_epoch: -1 50 | num_epochs: 10 51 | cuda_device: 0 52 | grad_norm: 0.1 53 | patience: 10 54 | validation_metric: "-loss" 55 | tensorboard_writer: 56 | summary_interval: 100 57 | should_log_parameter_statistics: false 58 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_bivariate/02_copying_previous_week/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: naive 13 | method: previous_week 14 | data_path: ./data/wiki/wiki.hdf5 15 | multi_views_path: ./data/wiki/views_split.hdf5 16 | series_len: 1827 17 | backcast_length: 112 18 | forecast_length: 28 19 | test_lengths: [7, 14, 21, 28] 20 | data_loader: 21 | batch_size: 64 22 | shuffle: false 23 | batches_per_epoch: 10000 24 | validation_data_loader: 25 | batch_size: 64 26 | trainer: 27 | type: apex_gradient_descent 28 | use_amp: false 29 | apex_opt_level: O1 30 | keep_batchnorm_fp32: None 31 | optimizer: 32 | type: adamw 33 | lr: 0.0001 34 | weight_decay: 0.0001 35 | parameter_groups: 36 | - - - project_in 37 | - {} 38 | - - - ^decoder.layers.0 39 | - {} 40 | - - - ^decoder.layers.1 41 | - {} 42 | - - - ^decoder.layers.2 43 | - {} 44 | - - - ^fc 45 | - {} 46 | learning_rate_scheduler: 47 | type: linear_with_warmup 48 | warmup_steps: 5000 49 | last_epoch: -1 50 | num_epochs: 10 51 | cuda_device: 0 52 | grad_norm: 0.1 53 | patience: 10 54 | validation_metric: "-loss" 55 | tensorboard_writer: 56 | summary_interval: 100 57 | should_log_parameter_statistics: false 58 | -------------------------------------------------------------------------------- /whatifs/docker-compose.yml: -------------------------------------------------------------------------------- 1 | # Docker compose YAML file 2 | # Documentation: https://docs.docker.com/compose/compose-file/ 3 | 4 | version: "3.8" 5 | 6 | services: 7 | zero: 8 | image: dgraph/dgraph:v20.07.1 9 | volumes: 10 | - ./dgraph/data:/dgraph 11 | - ./dgraph/backups:/backups 12 | ports: 13 | - 5280:5080 14 | - 6280:6080 15 | # - 8201:8000 # bulk loader pprof 16 | restart: on-failure 17 | command: dgraph zero --my=zero:5080 18 | 19 | alpha: 20 | image: dgraph/dgraph:v20.07.1 21 | volumes: 22 | - ./dgraph/data:/dgraph 23 | ports: 24 | - 8280:8080 25 | - 9280:9080 26 | restart: on-failure 27 | command: dgraph alpha --my=alpha:7080 --zero=zero:5080 --whitelist 172.18.0.1 -p /dgraph/out/0/p -w /dgraph/out/0/w 28 | 29 | ratel: 30 | image: dgraph/dgraph:v20.07.1 31 | volumes: 32 | - ./dgraph/backups:/backups 33 | ports: 34 | - 8200:8000 35 | command: dgraph-ratel 36 | 37 | backend: 38 | build: ./backend 39 | command: uvicorn server:app --host 0.0.0.0 --port 8000 --reload 40 | volumes: 41 | - ./backend:/backend 42 | ports: 43 | - 8205:8000 # host:container 44 | depends_on: 45 | - zero 46 | - alpha 47 | 48 | frontend: 49 | build: ./frontend 50 | command: ["yarn", "start"] 51 | stdin_open: true # https://stackoverflow.com/a/60902143 52 | environment: 53 | - HOST=0.0.0.0 54 | volumes: 55 | - ./frontend:/usr/src/app 56 | ports: 57 | - 3200:3000 # host:container 58 | depends_on: 59 | - backend 60 | -------------------------------------------------------------------------------- /radflow/modules/linear.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import math 3 | 4 | import torch.nn as nn 5 | 6 | logger = logging.getLogger(__name__) 7 | 8 | 9 | class GehringLinear(nn.Linear): 10 | """A linear layer with Gehring initialization and weight normalization.""" 11 | 12 | def __init__(self, in_features, out_features, dropout=0, bias=True, 13 | weight_norm=True): 14 | self.dropout = dropout 15 | self.weight_norm = weight_norm 16 | super().__init__(in_features, out_features, bias) 17 | 18 | def reset_parameters(self): 19 | # One problem with initialization from the uniform distribution is that 20 | # the distribution of the outputs has a variance that grows with the 21 | # number of inputs. It turns out that we can normalize the variance of 22 | # each neuron’s output to 1 by scaling its weight vector by the square 23 | # root of its fan-in (i.e. its number of inputs). Dropout further 24 | # increases the variance of each input, so we need to scale down std. 25 | # See A.3. in Gehring et al (2017): https://arxiv.org/pdf/1705.03122. 26 | std = math.sqrt((1 - self.dropout) / self.in_features) 27 | self.weight.data.normal_(mean=0, std=std) 28 | if self.bias is not None: 29 | self.bias.data.fill_(0) 30 | 31 | # Weight normalization is a reparameterization that decouples the 32 | # magnitude of a weight tensor from its direction. See Salimans and 33 | # Kingma (2016): https://arxiv.org/abs/1602.07868. 34 | if self.weight_norm: 35 | nn.utils.weight_norm(self) 36 | -------------------------------------------------------------------------------- /whatifs/backend/server.py: -------------------------------------------------------------------------------- 1 | import pydgraph 2 | from ariadne import ObjectType, QueryType, gql, make_executable_schema 3 | from ariadne.asgi import GraphQL 4 | from starlette.middleware.cors import CORSMiddleware 5 | 6 | # Define types using Schema Definition Language (https://graphql.org/learn/schema/) 7 | # Wrapping string in gql function provides validation and better error traceback 8 | type_defs = gql(""" 9 | type Query { 10 | people: [Person!]! 11 | } 12 | 13 | type Person { 14 | firstName: String 15 | lastName: String 16 | age: Int 17 | fullName: String 18 | } 19 | """) 20 | 21 | # Map resolver functions to Query fields using QueryType 22 | query = QueryType() 23 | 24 | # Resolvers are simple python functions 25 | 26 | 27 | @query.field("people") 28 | def resolve_people(*_): 29 | return [ 30 | {"firstName": "John", "lastName": "Doe", "age": 21}, 31 | {"firstName": "Bob", "lastName": "Boberson", "age": 24}, 32 | ] 33 | 34 | 35 | # Map resolver functions to custom type fields using ObjectType 36 | person = ObjectType("Person") 37 | 38 | 39 | @person.field("fullName") 40 | def resolve_person_fullname(person, *_): 41 | return "%s %s" % (person["firstName"], person["lastName"]) 42 | 43 | 44 | # Create executable GraphQL schema 45 | schema = make_executable_schema(type_defs, query, person) 46 | 47 | # Create an ASGI app using the schema, running in debug mode 48 | # app = GraphQL(schema, debug=True) 49 | app = CORSMiddleware(GraphQL(schema, debug=True), allow_origins=[ 50 | 'http://localhost:3200'], allow_methods=['POST']) 51 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_dynamic/imputation/one_hop/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | agg_type: mean 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 160 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | initializer: 25 | regexes: 26 | - - ^decoder.weight* 27 | - orthogonal 28 | - - ^decoder.bias* 29 | - zero 30 | data_loader: 31 | batch_size: 64 32 | shuffle: false 33 | batches_per_epoch: 10000 34 | validation_data_loader: 35 | batch_size: 64 36 | trainer: 37 | type: apex_gradient_descent 38 | use_amp: false 39 | apex_opt_level: O1 40 | keep_batchnorm_fp32: None 41 | optimizer: 42 | type: adamw 43 | lr: 0.0001 44 | weight_decay: 0.0001 45 | parameter_groups: 46 | - - - ^decoder 47 | - {} 48 | - - - ^(fc|out_proj) 49 | - {} 50 | learning_rate_scheduler: 51 | type: linear_with_warmup 52 | warmup_steps: 5000 53 | last_epoch: -1 54 | num_epochs: 10 55 | cuda_device: 0 56 | grad_norm: 0.1 57 | patience: 10 58 | validation_metric: "-loss" 59 | tensorboard_writer: 60 | summary_interval: 100 61 | should_log_parameter_statistics: false 62 | -------------------------------------------------------------------------------- /expt/pure_time_series/vevo/07_nbeats/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: nbeats 13 | n_stacks: 8 14 | hidden_size: 192 15 | thetas_dims: 192 16 | forecast_length: 7 17 | backcast_length: 42 18 | test_lengths: [7] 19 | dropout: 0.1 20 | data_loader: 21 | batch_size: 64 22 | shuffle: false 23 | batches_per_epoch: 10000 24 | validation_data_loader: 25 | batch_size: 64 26 | trainer: 27 | type: apex_gradient_descent 28 | use_amp: false 29 | apex_opt_level: O1 30 | keep_batchnorm_fp32: None 31 | optimizer: 32 | type: adamw 33 | lr: 0.0001 34 | weight_decay: 0.0001 35 | parameter_groups: 36 | - - - ^net.stacks.0 37 | - {} 38 | - - - ^net.stacks.1 39 | - {} 40 | - - - ^net.stacks.2 41 | - {} 42 | - - - ^net.stacks.3 43 | - {} 44 | - - - ^net.stacks.4 45 | - {} 46 | - - - ^net.stacks.5 47 | - {} 48 | - - - ^net.stacks.6 49 | - {} 50 | - - - ^net.stacks.7 51 | - {} 52 | learning_rate_scheduler: 53 | type: linear_with_warmup 54 | warmup_steps: 5000 55 | last_epoch: -1 56 | num_epochs: 10 57 | cuda_device: 0 58 | grad_norm: 0.1 59 | patience: 10 60 | validation_metric: "-loss" 61 | tensorboard_writer: 62 | summary_interval: 100 63 | should_log_parameter_statistics: false 64 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_univariate/06_lstm/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | series_len: 1827 17 | agg_type: none 18 | peek: true 19 | num_layers: 8 20 | hidden_size: 164 21 | dropout: 0.1 22 | backcast_length: 112 23 | forecast_length: 28 24 | test_lengths: [7, 14, 21, 28] 25 | initializer: 26 | regexes: 27 | - - ^decoder.weight* 28 | - orthogonal 29 | - - ^decoder.bias* 30 | - zero 31 | data_loader: 32 | batch_size: 64 33 | shuffle: false 34 | batches_per_epoch: 10000 35 | validation_data_loader: 36 | batch_size: 64 37 | trainer: 38 | type: apex_gradient_descent 39 | use_amp: false 40 | apex_opt_level: O1 41 | keep_batchnorm_fp32: None 42 | optimizer: 43 | type: adamw 44 | lr: 0.0001 45 | weight_decay: 0.0001 46 | parameter_groups: 47 | - - - ^decoder 48 | - {} 49 | - - - ^fc 50 | - {} 51 | learning_rate_scheduler: 52 | type: linear_with_warmup 53 | warmup_steps: 5000 54 | last_epoch: -1 55 | num_epochs: 10 56 | cuda_device: 0 57 | grad_norm: 0.1 58 | patience: 10 59 | validation_metric: "-loss" 60 | tensorboard_writer: 61 | summary_interval: 100 62 | should_log_parameter_statistics: false 63 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_dynamic/imputation/two_hops/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | agg_type: mean 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 160 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | max_eval_neighbours: 8 24 | neigh_sample: true 25 | n_hops: 2 26 | hop_scale: 1 27 | initializer: 28 | regexes: 29 | - - ^decoder.weight* 30 | - orthogonal 31 | - - ^decoder.bias* 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder 50 | - {} 51 | - - - ^(fc|out_proj) 52 | - {} 53 | learning_rate_scheduler: 54 | type: linear_with_warmup 55 | warmup_steps: 5000 56 | last_epoch: -1 57 | num_epochs: 10 58 | cuda_device: 0 59 | grad_norm: 0.1 60 | patience: 10 61 | validation_metric: "-loss" 62 | tensorboard_writer: 63 | summary_interval: 100 64 | should_log_parameter_statistics: false 65 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_univariate/07_nbeats/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: nbeats 13 | data_path: ./data/wiki/wiki.hdf5 14 | series_len: 1827 15 | n_stacks: 8 16 | hidden_size: 176 17 | thetas_dims: 176 18 | forecast_length: 28 19 | backcast_length: 112 20 | test_lengths: [7, 14, 21, 28] 21 | dropout: 0.1 22 | data_loader: 23 | batch_size: 64 24 | shuffle: false 25 | batches_per_epoch: 10000 26 | validation_data_loader: 27 | batch_size: 64 28 | trainer: 29 | type: apex_gradient_descent 30 | use_amp: false 31 | apex_opt_level: O1 32 | keep_batchnorm_fp32: None 33 | optimizer: 34 | type: adamw 35 | lr: 0.0001 36 | weight_decay: 0.0001 37 | parameter_groups: 38 | - - - ^net.stacks.0 39 | - {} 40 | - - - ^net.stacks.1 41 | - {} 42 | - - - ^net.stacks.2 43 | - {} 44 | - - - ^net.stacks.3 45 | - {} 46 | - - - ^net.stacks.4 47 | - {} 48 | - - - ^net.stacks.5 49 | - {} 50 | - - - ^net.stacks.6 51 | - {} 52 | - - - ^net.stacks.7 53 | - {} 54 | learning_rate_scheduler: 55 | type: linear_with_warmup 56 | warmup_steps: 5000 57 | last_epoch: -1 58 | num_epochs: 10 59 | cuda_device: 0 60 | grad_norm: 0.1 61 | patience: 10 62 | validation_metric: "-loss" 63 | tensorboard_writer: 64 | summary_interval: 100 65 | should_log_parameter_statistics: false 66 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_bivariate/06_lstm/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | multi_views_path: ./data/wiki/views_split.hdf5 17 | series_len: 1827 18 | agg_type: none 19 | peek: true 20 | num_layers: 8 21 | hidden_size: 164 22 | dropout: 0.1 23 | backcast_length: 112 24 | forecast_length: 28 25 | test_lengths: [7, 14, 21, 28] 26 | initializer: 27 | regexes: 28 | - - ^decoder.weight* 29 | - orthogonal 30 | - - ^decoder.bias* 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder 49 | - {} 50 | - - - ^fc 51 | - {} 52 | learning_rate_scheduler: 53 | type: linear_with_warmup 54 | warmup_steps: 5000 55 | last_epoch: -1 56 | num_epochs: 10 57 | cuda_device: 0 58 | grad_norm: 0.1 59 | patience: 10 60 | validation_metric: "-loss" 61 | tensorboard_writer: 62 | summary_interval: 100 63 | should_log_parameter_statistics: false 64 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_static/imputation/one_hop/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | agg_type: mean 14 | data_path: ./data/vevo/vevo_static.hdf5 15 | key2pos_path: ./data/vevo/vevo_static.key2pos.pkl 16 | peek: true 17 | num_layers: 8 18 | hidden_size: 160 19 | dropout: 0.1 20 | forecast_length: 7 21 | backcast_length: 42 22 | test_lengths: [7] 23 | max_neighbours: 4 24 | max_agg_neighbours: 4 25 | neigh_sample: true 26 | initializer: 27 | regexes: 28 | - - ^decoder.weight* 29 | - orthogonal 30 | - - ^decoder.bias* 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder 49 | - {} 50 | - - - ^(fc|out_proj) 51 | - {} 52 | learning_rate_scheduler: 53 | type: linear_with_warmup 54 | warmup_steps: 5000 55 | last_epoch: -1 56 | num_epochs: 10 57 | cuda_device: 0 58 | grad_norm: 0.1 59 | patience: 10 60 | validation_metric: "-loss" 61 | tensorboard_writer: 62 | summary_interval: 100 63 | should_log_parameter_statistics: false 64 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_bivariate/07_nbeats_desktop/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: nbeats 13 | data_path: ./data/wiki/views_split.hdf5 14 | slice_idx: 0 15 | series_len: 1827 16 | n_stacks: 8 17 | hidden_size: 120 18 | thetas_dims: 120 19 | forecast_length: 28 20 | backcast_length: 112 21 | test_lengths: [7, 14, 21, 28] 22 | dropout: 0.1 23 | data_loader: 24 | batch_size: 64 25 | shuffle: false 26 | batches_per_epoch: 10000 27 | validation_data_loader: 28 | batch_size: 64 29 | trainer: 30 | type: apex_gradient_descent 31 | use_amp: false 32 | apex_opt_level: O1 33 | keep_batchnorm_fp32: None 34 | optimizer: 35 | type: adamw 36 | lr: 0.0001 37 | weight_decay: 0.0001 38 | parameter_groups: 39 | - - - ^net.stacks.0 40 | - {} 41 | - - - ^net.stacks.1 42 | - {} 43 | - - - ^net.stacks.2 44 | - {} 45 | - - - ^net.stacks.3 46 | - {} 47 | - - - ^net.stacks.4 48 | - {} 49 | - - - ^net.stacks.5 50 | - {} 51 | - - - ^net.stacks.6 52 | - {} 53 | - - - ^net.stacks.7 54 | - {} 55 | learning_rate_scheduler: 56 | type: linear_with_warmup 57 | warmup_steps: 5000 58 | last_epoch: -1 59 | num_epochs: 10 60 | cuda_device: 0 61 | grad_norm: 0.1 62 | patience: 10 63 | validation_metric: "-loss" 64 | tensorboard_writer: 65 | summary_interval: 100 66 | should_log_parameter_statistics: false 67 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_bivariate/07_nbeats_mobile/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: nbeats 13 | data_path: ./data/wiki/views_split.hdf5 14 | slice_idx: 1 15 | series_len: 1827 16 | n_stacks: 8 17 | hidden_size: 120 18 | thetas_dims: 120 19 | forecast_length: 28 20 | backcast_length: 112 21 | test_lengths: [7, 14, 21, 28] 22 | dropout: 0.1 23 | data_loader: 24 | batch_size: 64 25 | shuffle: false 26 | batches_per_epoch: 10000 27 | validation_data_loader: 28 | batch_size: 64 29 | trainer: 30 | type: apex_gradient_descent 31 | use_amp: false 32 | apex_opt_level: O1 33 | keep_batchnorm_fp32: None 34 | optimizer: 35 | type: adamw 36 | lr: 0.0001 37 | weight_decay: 0.0001 38 | parameter_groups: 39 | - - - ^net.stacks.0 40 | - {} 41 | - - - ^net.stacks.1 42 | - {} 43 | - - - ^net.stacks.2 44 | - {} 45 | - - - ^net.stacks.3 46 | - {} 47 | - - - ^net.stacks.4 48 | - {} 49 | - - - ^net.stacks.5 50 | - {} 51 | - - - ^net.stacks.6 52 | - {} 53 | - - - ^net.stacks.7 54 | - {} 55 | learning_rate_scheduler: 56 | type: linear_with_warmup 57 | warmup_steps: 5000 58 | last_epoch: -1 59 | num_epochs: 10 60 | cuda_device: 0 61 | grad_norm: 0.1 62 | patience: 10 63 | validation_metric: "-loss" 64 | tensorboard_writer: 65 | summary_interval: 100 66 | should_log_parameter_statistics: false 67 | -------------------------------------------------------------------------------- /expt/network_aggregation/wiki_univariate/imputation/one_hop/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | series_len: 1827 17 | agg_type: mean 18 | peek: true 19 | num_layers: 8 20 | hidden_size: 160 21 | dropout: 0.1 22 | forecast_length: 28 23 | backcast_length: 112 24 | test_lengths: [7, 14, 21, 28] 25 | max_neighbours: 4 26 | max_agg_neighbours: 4 27 | neigh_sample: true 28 | initializer: 29 | regexes: 30 | - - ^decoder.weight* 31 | - orthogonal 32 | - - ^decoder.bias* 33 | - zero 34 | data_loader: 35 | batch_size: 64 36 | shuffle: false 37 | batches_per_epoch: 10000 38 | validation_data_loader: 39 | batch_size: 64 40 | trainer: 41 | type: apex_gradient_descent 42 | use_amp: false 43 | apex_opt_level: O1 44 | keep_batchnorm_fp32: None 45 | optimizer: 46 | type: adamw 47 | lr: 0.0001 48 | weight_decay: 0.0001 49 | parameter_groups: 50 | - - - ^decoder 51 | - {} 52 | - - - ^(fc|out_proj) 53 | - {} 54 | learning_rate_scheduler: 55 | type: linear_with_warmup 56 | warmup_steps: 5000 57 | last_epoch: -1 58 | num_epochs: 10 59 | cuda_device: 0 60 | grad_norm: 0.1 61 | patience: 10 62 | validation_metric: "-loss" 63 | tensorboard_writer: 64 | summary_interval: 100 65 | should_log_parameter_statistics: false 66 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_static/imputation/two_hops/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | agg_type: mean 14 | data_path: ./data/vevo/vevo_static.hdf5 15 | key2pos_path: ./data/vevo/vevo_static.key2pos.pkl 16 | peek: true 17 | num_layers: 8 18 | hidden_size: 160 19 | dropout: 0.1 20 | forecast_length: 7 21 | backcast_length: 42 22 | test_lengths: [7] 23 | max_neighbours: 4 24 | max_agg_neighbours: 4 25 | max_eval_neighbours: 8 26 | neigh_sample: true 27 | n_hops: 2 28 | hop_scale: 1 29 | initializer: 30 | regexes: 31 | - - ^decoder.weight* 32 | - orthogonal 33 | - - ^decoder.bias* 34 | - zero 35 | data_loader: 36 | batch_size: 64 37 | shuffle: false 38 | batches_per_epoch: 10000 39 | validation_data_loader: 40 | batch_size: 64 41 | trainer: 42 | type: apex_gradient_descent 43 | use_amp: false 44 | apex_opt_level: O1 45 | keep_batchnorm_fp32: None 46 | optimizer: 47 | type: adamw 48 | lr: 0.0001 49 | weight_decay: 0.0001 50 | parameter_groups: 51 | - - - ^decoder 52 | - {} 53 | - - - ^(fc|out_proj) 54 | - {} 55 | learning_rate_scheduler: 56 | type: linear_with_warmup 57 | warmup_steps: 5000 58 | last_epoch: -1 59 | num_epochs: 10 60 | cuda_device: 0 61 | grad_norm: 0.1 62 | patience: 10 63 | validation_metric: "-loss" 64 | tensorboard_writer: 65 | summary_interval: 100 66 | should_log_parameter_statistics: false 67 | -------------------------------------------------------------------------------- /expt/taxi/los_angeles/08_radflow_no_network/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | n_nodes: 207 5 | train_data_path: train 6 | validation_data_path: valid 7 | test_data_path: test 8 | vocabulary: 9 | type: empty 10 | model: 11 | type: radflow 12 | data_path: data/taxi/los.h5 13 | key2pos_path: null 14 | series_len: 2016 15 | agg_type: none 16 | num_layers: 4 17 | hidden_size: 73 18 | dropout: 0.1 19 | forecast_length: 12 20 | backcast_length: 36 21 | test_lengths: [12] 22 | peek: false 23 | max_neighbours: 4 24 | variant: none 25 | initializer: 26 | regexes: 27 | - - ^decoder.layers.*.layer.weight* 28 | - orthogonal 29 | - - ^decoder.layers.*.layer.bias 30 | - zero 31 | data_loader: 32 | batch_size: 64 33 | shuffle: false 34 | batches_per_epoch: 10000 35 | validation_data_loader: 36 | batch_size: 64 37 | trainer: 38 | type: apex_gradient_descent 39 | use_amp: false 40 | apex_opt_level: O1 41 | keep_batchnorm_fp32: None 42 | optimizer: 43 | type: adamw 44 | lr: 0.0001 45 | weight_decay: 0.0001 46 | parameter_groups: 47 | - - - ^decoder.in_proj 48 | - {} 49 | - - - ^decoder.layers.0 50 | - {} 51 | - - - ^decoder.layers.1 52 | - {} 53 | - - - ^decoder.layers.2 54 | - {} 55 | - - - ^decoder.layers.3 56 | - {} 57 | - - - ^decoder.out_f 58 | - {} 59 | learning_rate_scheduler: 60 | type: linear_with_warmup 61 | warmup_steps: 5000 62 | last_epoch: -1 63 | num_epochs: 10 64 | cuda_device: 0 65 | grad_norm: 0.1 66 | patience: 10 67 | validation_metric: "-smape_12" 68 | tensorboard_writer: 69 | summary_interval: 100 70 | should_log_parameter_statistics: false 71 | -------------------------------------------------------------------------------- /scripts/cache_inlinks.py: -------------------------------------------------------------------------------- 1 | """Cache inlinks 2 | 3 | Usage: 4 | cache_inlinks.py [options] 5 | 6 | Options: 7 | -p --ptvsd PORT Enable debug mode with ptvsd on PORT, e.g. 5678. 8 | -m --mongo HOST MongoDB host [default: localhost]. 9 | 10 | """ 11 | 12 | 13 | import ptvsd 14 | from docopt import docopt 15 | from pymongo import MongoClient 16 | from schema import And, Or, Schema, Use 17 | from tqdm import tqdm 18 | 19 | from radflow.utils import setup_logger 20 | 21 | logger = setup_logger() 22 | 23 | 24 | def cache_all_inlinks(mongo_host): 25 | client = MongoClient(host=mongo_host, port=27017) 26 | db = client.wiki 27 | 28 | for source_page in tqdm(db.pages.find({})): 29 | for link in source_page['links']: 30 | dest_title = link['n'] 31 | inlink = { 32 | 'i': source_page['i'], 33 | 't': link['t'], 34 | } 35 | db.pages.update_one({'title': dest_title}, { 36 | '$push': {'inlinks': inlink}}) 37 | 38 | 39 | def validate(args): 40 | """Validate command line arguments.""" 41 | args = {k.lstrip('-').lower().replace('-', '_'): v 42 | for k, v in args.items()} 43 | schema = Schema({ 44 | 'ptvsd': Or(None, And(Use(int), lambda port: 1 <= port <= 65535)), 45 | 'mongo': Or(None, str), 46 | }) 47 | args = schema.validate(args) 48 | return args 49 | 50 | 51 | def main(): 52 | args = docopt(__doc__, version='0.0.1') 53 | args = validate(args) 54 | 55 | if args['ptvsd']: 56 | address = ('0.0.0.0', args['ptvsd']) 57 | ptvsd.enable_attach(address) 58 | ptvsd.wait_for_attach() 59 | 60 | cache_all_inlinks(args['mongo']) 61 | 62 | 63 | if __name__ == '__main__': 64 | main() 65 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_dynamic/forecast/one_hop/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | agg_type: mean 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 160 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | base_model_config: expt/pure_time_series/vevo/08_radflow_no_network/config.yaml 25 | base_model_weights: expt/pure_time_series/vevo/08_radflow_no_network/serialization/best.th 26 | initializer: 27 | regexes: 28 | - - ^decoder.weight* 29 | - orthogonal 30 | - - ^decoder.bias* 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder 49 | - {} 50 | - - - ^(fc|out_proj) 51 | - {} 52 | learning_rate_scheduler: 53 | type: linear_with_warmup 54 | warmup_steps: 5000 55 | last_epoch: -1 56 | num_epochs: 10 57 | cuda_device: 0 58 | grad_norm: 0.1 59 | patience: 10 60 | validation_metric: "-loss" 61 | tensorboard_writer: 62 | summary_interval: 100 63 | should_log_parameter_statistics: false 64 | -------------------------------------------------------------------------------- /whatifs/frontend/src/components/Header/index.tsx: -------------------------------------------------------------------------------- 1 | import { Box, Flex, Heading, Text } from '@chakra-ui/core'; 2 | import React from 'react'; 3 | import { Link } from 'react-router-dom'; 4 | 5 | const MenuItems = ({ children }: any) => ( 6 | 7 | {children} 8 | 9 | ); 10 | 11 | const Header = (props: any) => { 12 | const [show, setShow] = React.useState(false); 13 | const handleToggle = () => setShow(!show); 14 | 15 | return ( 16 | 26 | 27 | 28 | RADflow 29 | 30 | 31 | 32 | 33 | 39 | Menu 40 | 41 | 42 | 43 | 44 | 50 | 51 | Home 52 | 53 | 54 | Wiki 55 | 56 | 57 | Vevo 58 | 59 | 60 | 61 | ); 62 | }; 63 | 64 | export default Header; 65 | -------------------------------------------------------------------------------- /expt/taxi/shenzhen/08_radflow_no_network/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | n_nodes: 156 5 | train_data_path: train 6 | validation_data_path: valid 7 | test_data_path: test 8 | vocabulary: 9 | type: empty 10 | model: 11 | type: radflow 12 | data_path: data/taxi/sz.h5 13 | key2pos_path: null 14 | series_len: 2976 15 | agg_type: none 16 | num_layers: 4 17 | hidden_size: 73 18 | dropout: 0.1 19 | forecast_length: 4 20 | backcast_length: 24 21 | test_lengths: [4] 22 | peek: false 23 | max_neighbours: 4 24 | variant: none 25 | ignore_test_zeros: true 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.out_f 59 | - {} 60 | learning_rate_scheduler: 61 | type: linear_with_warmup 62 | warmup_steps: 5000 63 | last_epoch: -1 64 | num_epochs: 10 65 | cuda_device: 0 66 | grad_norm: 0.1 67 | patience: 10 68 | validation_metric: "-smape_4" 69 | tensorboard_writer: 70 | summary_interval: 100 71 | should_log_parameter_statistics: false 72 | -------------------------------------------------------------------------------- /expt/network_aggregation/wiki_bivariate/imputation/one_hop/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | multi_views_path: ./data/wiki/views_split.hdf5 17 | series_len: 1827 18 | agg_type: mean 19 | peek: true 20 | num_layers: 8 21 | hidden_size: 160 22 | dropout: 0.1 23 | forecast_length: 28 24 | backcast_length: 112 25 | test_lengths: [7, 14, 21, 28] 26 | max_neighbours: 4 27 | max_agg_neighbours: 4 28 | neigh_sample: true 29 | initializer: 30 | regexes: 31 | - - ^decoder.weight* 32 | - orthogonal 33 | - - ^decoder.bias* 34 | - zero 35 | data_loader: 36 | batch_size: 64 37 | shuffle: false 38 | batches_per_epoch: 10000 39 | validation_data_loader: 40 | batch_size: 64 41 | trainer: 42 | type: apex_gradient_descent 43 | use_amp: false 44 | apex_opt_level: O1 45 | keep_batchnorm_fp32: None 46 | optimizer: 47 | type: adamw 48 | lr: 0.0001 49 | weight_decay: 0.0001 50 | parameter_groups: 51 | - - - ^decoder 52 | - {} 53 | - - - ^(fc|out_proj) 54 | - {} 55 | learning_rate_scheduler: 56 | type: linear_with_warmup 57 | warmup_steps: 5000 58 | last_epoch: -1 59 | num_epochs: 10 60 | cuda_device: 0 61 | grad_norm: 0.1 62 | patience: 10 63 | validation_metric: "-loss" 64 | tensorboard_writer: 65 | summary_interval: 100 66 | should_log_parameter_statistics: false 67 | -------------------------------------------------------------------------------- /expt/network_aggregation/wiki_univariate/imputation/two_hops/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | series_len: 1827 17 | agg_type: mean 18 | peek: true 19 | num_layers: 8 20 | hidden_size: 160 21 | dropout: 0.1 22 | forecast_length: 28 23 | backcast_length: 112 24 | test_lengths: [7, 14, 21, 28] 25 | max_neighbours: 4 26 | max_agg_neighbours: 4 27 | max_eval_neighbours: 8 28 | n_hops: 2 29 | hop_scale: 1 30 | neigh_sample: true 31 | initializer: 32 | regexes: 33 | - - ^decoder.weight* 34 | - orthogonal 35 | - - ^decoder.bias* 36 | - zero 37 | data_loader: 38 | batch_size: 64 39 | shuffle: false 40 | batches_per_epoch: 10000 41 | validation_data_loader: 42 | batch_size: 64 43 | trainer: 44 | type: apex_gradient_descent 45 | use_amp: false 46 | apex_opt_level: O1 47 | keep_batchnorm_fp32: None 48 | optimizer: 49 | type: adamw 50 | lr: 0.0001 51 | weight_decay: 0.0001 52 | parameter_groups: 53 | - - - ^decoder 54 | - {} 55 | - - - ^(fc|out_proj) 56 | - {} 57 | learning_rate_scheduler: 58 | type: linear_with_warmup 59 | warmup_steps: 5000 60 | last_epoch: -1 61 | num_epochs: 10 62 | cuda_device: 0 63 | grad_norm: 0.1 64 | patience: 10 65 | validation_metric: "-loss" 66 | tensorboard_writer: 67 | summary_interval: 100 68 | should_log_parameter_statistics: false 69 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_dynamic/forecast/two_hops/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | agg_type: mean 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 160 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | max_eval_neighbours: 8 24 | neigh_sample: true 25 | n_hops: 2 26 | hop_scale: 1 27 | base_model_config: expt/pure_time_series/vevo/08_radflow_no_network/config.yaml 28 | base_model_weights: expt/pure_time_series/vevo/08_radflow_no_network/serialization/best.th 29 | initializer: 30 | regexes: 31 | - - ^decoder.weight* 32 | - orthogonal 33 | - - ^decoder.bias* 34 | - zero 35 | data_loader: 36 | batch_size: 64 37 | shuffle: false 38 | batches_per_epoch: 10000 39 | validation_data_loader: 40 | batch_size: 64 41 | trainer: 42 | type: apex_gradient_descent 43 | use_amp: false 44 | apex_opt_level: O1 45 | keep_batchnorm_fp32: None 46 | optimizer: 47 | type: adamw 48 | lr: 0.0001 49 | weight_decay: 0.0001 50 | parameter_groups: 51 | - - - ^decoder 52 | - {} 53 | - - - ^(fc|out_proj) 54 | - {} 55 | learning_rate_scheduler: 56 | type: linear_with_warmup 57 | warmup_steps: 5000 58 | last_epoch: -1 59 | num_epochs: 10 60 | cuda_device: 0 61 | grad_norm: 0.1 62 | patience: 10 63 | validation_metric: "-loss" 64 | tensorboard_writer: 65 | summary_interval: 100 66 | should_log_parameter_statistics: false 67 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_static/forecast/one_hop/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | agg_type: mean 14 | data_path: ./data/vevo/vevo_static.hdf5 15 | key2pos_path: ./data/vevo/vevo_static.key2pos.pkl 16 | peek: true 17 | num_layers: 8 18 | hidden_size: 160 19 | dropout: 0.1 20 | forecast_length: 7 21 | backcast_length: 42 22 | test_lengths: [7] 23 | max_neighbours: 4 24 | max_agg_neighbours: 4 25 | neigh_sample: true 26 | base_model_config: expt/pure_time_series/vevo/08_radflow_no_network/config.yaml 27 | base_model_weights: expt/pure_time_series/vevo/08_radflow_no_network/serialization/best.th 28 | initializer: 29 | regexes: 30 | - - ^decoder.weight* 31 | - orthogonal 32 | - - ^decoder.bias* 33 | - zero 34 | data_loader: 35 | batch_size: 64 36 | shuffle: false 37 | batches_per_epoch: 10000 38 | validation_data_loader: 39 | batch_size: 64 40 | trainer: 41 | type: apex_gradient_descent 42 | use_amp: false 43 | apex_opt_level: O1 44 | keep_batchnorm_fp32: None 45 | optimizer: 46 | type: adamw 47 | lr: 0.0001 48 | weight_decay: 0.0001 49 | parameter_groups: 50 | - - - ^decoder 51 | - {} 52 | - - - ^(fc|out_proj) 53 | - {} 54 | learning_rate_scheduler: 55 | type: linear_with_warmup 56 | warmup_steps: 5000 57 | last_epoch: -1 58 | num_epochs: 10 59 | cuda_device: 0 60 | grad_norm: 0.1 61 | patience: 10 62 | validation_metric: "-loss" 63 | tensorboard_writer: 64 | summary_interval: 100 65 | should_log_parameter_statistics: false 66 | -------------------------------------------------------------------------------- /expt/network_aggregation/wiki_bivariate/imputation/two_hops/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | multi_views_path: ./data/wiki/views_split.hdf5 17 | series_len: 1827 18 | agg_type: mean 19 | peek: true 20 | num_layers: 8 21 | hidden_size: 160 22 | dropout: 0.1 23 | forecast_length: 28 24 | backcast_length: 112 25 | test_lengths: [7, 14, 21, 28] 26 | max_neighbours: 4 27 | max_agg_neighbours: 4 28 | max_eval_neighbours: 8 29 | n_hops: 2 30 | hop_scale: 1 31 | neigh_sample: true 32 | initializer: 33 | regexes: 34 | - - ^decoder.weight* 35 | - orthogonal 36 | - - ^decoder.bias* 37 | - zero 38 | data_loader: 39 | batch_size: 64 40 | shuffle: false 41 | batches_per_epoch: 10000 42 | validation_data_loader: 43 | batch_size: 64 44 | trainer: 45 | type: apex_gradient_descent 46 | use_amp: false 47 | apex_opt_level: O1 48 | keep_batchnorm_fp32: None 49 | optimizer: 50 | type: adamw 51 | lr: 0.0001 52 | weight_decay: 0.0001 53 | parameter_groups: 54 | - - - ^decoder 55 | - {} 56 | - - - ^(fc|out_proj) 57 | - {} 58 | learning_rate_scheduler: 59 | type: linear_with_warmup 60 | warmup_steps: 5000 61 | last_epoch: -1 62 | num_epochs: 10 63 | cuda_device: 0 64 | grad_norm: 0.1 65 | patience: 10 66 | validation_metric: "-loss" 67 | tensorboard_writer: 68 | summary_interval: 100 69 | should_log_parameter_statistics: false 70 | -------------------------------------------------------------------------------- /radflow/commands/server.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import os 3 | 4 | import torch 5 | from allennlp.common.util import prepare_environment 6 | from allennlp.data.vocabulary import Vocabulary 7 | from allennlp.models import Model 8 | from allennlp.models.archival import load_archive 9 | from jina.flow import Flow 10 | 11 | from .train import yaml_to_params 12 | 13 | logger = logging.getLogger(__name__) # pylint: disable=invalid-name 14 | 15 | 16 | def serve_from_file(archive_path, model_path, flow_path, overrides=None, device=0): 17 | # if archive_path.endswith('gz'): 18 | # archive = load_archive(archive_path, device, overrides) 19 | # config = archive.config 20 | # prepare_environment(config) 21 | # model = archive.model 22 | # serialization_dir = os.path.dirname(archive_path) 23 | # elif archive_path.endswith('yaml'): 24 | # config = yaml_to_params(archive_path, overrides) 25 | # prepare_environment(config) 26 | # config_dir = os.path.dirname(archive_path) 27 | # serialization_dir = os.path.join(config_dir, 'serialization') 28 | 29 | # os.makedirs(serialization_dir, exist_ok=True) 30 | # vocab = Vocabulary.from_params(config.pop('vocabulary')) 31 | 32 | # model = Model.from_params(vocab=vocab, params=config.pop('model')) 33 | # if torch.cuda.is_available(): 34 | # device = torch.device(f'cuda:{device}') 35 | # else: 36 | # device = torch.device('cpu') 37 | 38 | # if model_path: 39 | # best_model_state = torch.load(model_path, device) 40 | # model.load_state_dict(best_model_state) 41 | 42 | # We want to keep the dropout to generate confidence intervals 43 | # model = model.eval() 44 | 45 | print('init flow') 46 | flow = Flow(port_expose=44192) 47 | flow.add(name='radflow_forecaster', uses=flow_path) 48 | 49 | print('start loop') 50 | with flow: 51 | flow.block() 52 | -------------------------------------------------------------------------------- /whatifs/frontend/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | RADflow Counterfactuals 28 | 29 | 30 | 31 |
32 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /expt/taxi/los_angeles/15_radflow/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | n_nodes: 207 5 | train_data_path: train 6 | validation_data_path: valid 7 | test_data_path: test 8 | vocabulary: 9 | type: empty 10 | model: 11 | type: radflow 12 | data_path: data/taxi/los.h5 13 | key2pos_path: null 14 | series_len: 2016 15 | agg_type: attention 16 | peek: true 17 | num_layers: 4 18 | hidden_size: 64 19 | n_heads: 4 20 | dropout: 0.1 21 | forecast_length: 12 22 | backcast_length: 36 23 | test_lengths: [12] 24 | edge_selection_method: top 25 | max_neighbours: 128 26 | max_agg_neighbours: 256 27 | neigh_sample: false 28 | initializer: 29 | regexes: 30 | - - ^decoder.layers.*.layer.weight* 31 | - orthogonal 32 | - - ^decoder.layers.*.layer.bias 33 | - zero 34 | data_loader: 35 | batch_size: 64 36 | shuffle: false 37 | batches_per_epoch: 10000 38 | validation_data_loader: 39 | batch_size: 64 40 | trainer: 41 | type: apex_gradient_descent 42 | use_amp: false 43 | apex_opt_level: O1 44 | keep_batchnorm_fp32: None 45 | optimizer: 46 | type: adamw 47 | lr: 0.0001 48 | weight_decay: 0.0001 49 | parameter_groups: 50 | - - - ^decoder.in_proj 51 | - {} 52 | - - - ^decoder.layers.0 53 | - {} 54 | - - - ^decoder.layers.1 55 | - {} 56 | - - - ^decoder.layers.2 57 | - {} 58 | - - - ^decoder.layers.3 59 | - {} 60 | - - - ^decoder.out_f 61 | - {} 62 | - - - ^attn 63 | - {} 64 | - - - ^fc 65 | - {} 66 | learning_rate_scheduler: 67 | type: linear_with_warmup 68 | warmup_steps: 5000 69 | last_epoch: -1 70 | num_epochs: 10 71 | cuda_device: 0 72 | grad_norm: 0.1 73 | patience: 10 74 | validation_metric: "-smape_12" 75 | tensorboard_writer: 76 | summary_interval: 100 77 | should_log_parameter_statistics: false 78 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_static/forecast/two_hops/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | agg_type: mean 14 | data_path: ./data/vevo/vevo_static.hdf5 15 | key2pos_path: ./data/vevo/vevo_static.key2pos.pkl 16 | peek: true 17 | num_layers: 8 18 | hidden_size: 160 19 | dropout: 0.1 20 | forecast_length: 7 21 | backcast_length: 42 22 | test_lengths: [7] 23 | max_neighbours: 4 24 | max_agg_neighbours: 4 25 | max_eval_neighbours: 8 26 | neigh_sample: true 27 | n_hops: 2 28 | hop_scale: 1 29 | base_model_config: expt/pure_time_series/vevo/08_radflow_no_network/config.yaml 30 | base_model_weights: expt/pure_time_series/vevo/08_radflow_no_network/serialization/best.th 31 | initializer: 32 | regexes: 33 | - - ^decoder.weight* 34 | - orthogonal 35 | - - ^decoder.bias* 36 | - zero 37 | data_loader: 38 | batch_size: 64 39 | shuffle: false 40 | batches_per_epoch: 10000 41 | validation_data_loader: 42 | batch_size: 64 43 | trainer: 44 | type: apex_gradient_descent 45 | use_amp: false 46 | apex_opt_level: O1 47 | keep_batchnorm_fp32: None 48 | optimizer: 49 | type: adamw 50 | lr: 0.0001 51 | weight_decay: 0.0001 52 | parameter_groups: 53 | - - - ^decoder 54 | - {} 55 | - - - ^(fc|out_proj) 56 | - {} 57 | learning_rate_scheduler: 58 | type: linear_with_warmup 59 | warmup_steps: 5000 60 | last_epoch: -1 61 | num_epochs: 10 62 | cuda_device: 0 63 | grad_norm: 0.1 64 | patience: 10 65 | validation_metric: "-loss" 66 | tensorboard_writer: 67 | summary_interval: 100 68 | should_log_parameter_statistics: false 69 | -------------------------------------------------------------------------------- /expt/taxi/shenzhen/15_radflow/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | n_nodes: 156 5 | train_data_path: train 6 | validation_data_path: valid 7 | test_data_path: test 8 | vocabulary: 9 | type: empty 10 | model: 11 | type: radflow 12 | data_path: data/taxi/sz.h5 13 | key2pos_path: null 14 | series_len: 2976 15 | agg_type: attention 16 | peek: true 17 | num_layers: 4 18 | hidden_size: 64 19 | n_heads: 4 20 | dropout: 0.1 21 | forecast_length: 4 22 | backcast_length: 24 23 | test_lengths: [4] 24 | edge_selection_method: top 25 | max_neighbours: 128 26 | max_agg_neighbours: 256 27 | neigh_sample: false 28 | ignore_test_zeros: true 29 | initializer: 30 | regexes: 31 | - - ^decoder.layers.*.layer.weight* 32 | - orthogonal 33 | - - ^decoder.layers.*.layer.bias 34 | - zero 35 | data_loader: 36 | batch_size: 64 37 | shuffle: false 38 | batches_per_epoch: 10000 39 | validation_data_loader: 40 | batch_size: 64 41 | trainer: 42 | type: apex_gradient_descent 43 | use_amp: false 44 | apex_opt_level: O1 45 | keep_batchnorm_fp32: None 46 | optimizer: 47 | type: adamw 48 | lr: 0.0001 49 | weight_decay: 0.0001 50 | parameter_groups: 51 | - - - ^decoder.in_proj 52 | - {} 53 | - - - ^decoder.layers.0 54 | - {} 55 | - - - ^decoder.layers.1 56 | - {} 57 | - - - ^decoder.layers.2 58 | - {} 59 | - - - ^decoder.layers.3 60 | - {} 61 | - - - ^decoder.out_f 62 | - {} 63 | - - - ^attn 64 | - {} 65 | - - - ^fc 66 | - {} 67 | learning_rate_scheduler: 68 | type: linear_with_warmup 69 | warmup_steps: 5000 70 | last_epoch: -1 71 | num_epochs: 10 72 | cuda_device: 0 73 | grad_norm: 0.1 74 | patience: 10 75 | validation_metric: "-smape_4" 76 | tensorboard_writer: 77 | summary_interval: 100 78 | should_log_parameter_statistics: false 79 | -------------------------------------------------------------------------------- /expt/network_aggregation/wiki_univariate/forecast/one_hop/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | series_len: 1827 17 | agg_type: mean 18 | peek: true 19 | num_layers: 8 20 | hidden_size: 160 21 | dropout: 0.1 22 | forecast_length: 28 23 | backcast_length: 112 24 | test_lengths: [7, 14, 21, 28] 25 | max_neighbours: 4 26 | max_agg_neighbours: 4 27 | neigh_sample: true 28 | base_model_config: expt/pure_time_series/wiki_univariate/08_radflow_no_network/config.yaml 29 | base_model_weights: expt/pure_time_series/wiki_univariate/08_radflow_no_network/serialization/best.th 30 | initializer: 31 | regexes: 32 | - - ^decoder.weight* 33 | - orthogonal 34 | - - ^decoder.bias* 35 | - zero 36 | data_loader: 37 | batch_size: 64 38 | shuffle: false 39 | batches_per_epoch: 10000 40 | validation_data_loader: 41 | batch_size: 64 42 | trainer: 43 | type: apex_gradient_descent 44 | use_amp: false 45 | apex_opt_level: O1 46 | keep_batchnorm_fp32: None 47 | optimizer: 48 | type: adamw 49 | lr: 0.0001 50 | weight_decay: 0.0001 51 | parameter_groups: 52 | - - - ^decoder 53 | - {} 54 | - - - ^(fc|out_proj) 55 | - {} 56 | learning_rate_scheduler: 57 | type: linear_with_warmup 58 | warmup_steps: 5000 59 | last_epoch: -1 60 | num_epochs: 10 61 | cuda_device: 0 62 | grad_norm: 0.1 63 | patience: 10 64 | validation_metric: "-loss" 65 | tensorboard_writer: 66 | summary_interval: 100 67 | should_log_parameter_statistics: false 68 | -------------------------------------------------------------------------------- /expt/pure_time_series/vevo/08_radflow_no_network/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: none 14 | num_layers: 8 15 | hidden_size: 128 16 | dropout: 0.1 17 | forecast_length: 7 18 | backcast_length: 42 19 | test_lengths: [7] 20 | peek: false 21 | max_neighbours: 4 22 | variant: none 23 | initializer: 24 | regexes: 25 | - - ^decoder.layers.*.layer.weight* 26 | - orthogonal 27 | - - ^decoder.layers.*.layer.bias 28 | - zero 29 | data_loader: 30 | batch_size: 64 31 | shuffle: false 32 | batches_per_epoch: 10000 33 | validation_data_loader: 34 | batch_size: 64 35 | trainer: 36 | type: apex_gradient_descent 37 | use_amp: false 38 | apex_opt_level: O1 39 | keep_batchnorm_fp32: None 40 | optimizer: 41 | type: adamw 42 | lr: 0.0001 43 | weight_decay: 0.0001 44 | parameter_groups: 45 | - - - ^decoder.in_proj 46 | - {} 47 | - - - ^decoder.layers.0 48 | - {} 49 | - - - ^decoder.layers.1 50 | - {} 51 | - - - ^decoder.layers.2 52 | - {} 53 | - - - ^decoder.layers.3 54 | - {} 55 | - - - ^decoder.layers.4 56 | - {} 57 | - - - ^decoder.layers.5 58 | - {} 59 | - - - ^decoder.layers.6 60 | - {} 61 | - - - ^decoder.layers.7 62 | - {} 63 | - - - ^decoder.out_f 64 | - {} 65 | learning_rate_scheduler: 66 | type: linear_with_warmup 67 | warmup_steps: 5000 68 | last_epoch: -1 69 | num_epochs: 10 70 | cuda_device: 0 71 | grad_norm: 0.1 72 | patience: 10 73 | validation_metric: "-loss" 74 | tensorboard_writer: 75 | summary_interval: 100 76 | should_log_parameter_statistics: false 77 | -------------------------------------------------------------------------------- /expt/network_aggregation/wiki_bivariate/forecast/one_hop/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | multi_views_path: ./data/wiki/views_split.hdf5 17 | series_len: 1827 18 | agg_type: mean 19 | peek: true 20 | num_layers: 8 21 | hidden_size: 160 22 | dropout: 0.1 23 | forecast_length: 28 24 | backcast_length: 112 25 | test_lengths: [7, 14, 21, 28] 26 | max_neighbours: 4 27 | max_agg_neighbours: 4 28 | neigh_sample: true 29 | base_model_config: expt/pure_time_series/wiki_bivariate/08_radflow_no_network/config.yaml 30 | base_model_weights: expt/pure_time_series/wiki_bivariate/08_radflow_no_network/serialization/best.th 31 | initializer: 32 | regexes: 33 | - - ^decoder.weight* 34 | - orthogonal 35 | - - ^decoder.bias* 36 | - zero 37 | data_loader: 38 | batch_size: 64 39 | shuffle: false 40 | batches_per_epoch: 10000 41 | validation_data_loader: 42 | batch_size: 64 43 | trainer: 44 | type: apex_gradient_descent 45 | use_amp: false 46 | apex_opt_level: O1 47 | keep_batchnorm_fp32: None 48 | optimizer: 49 | type: adamw 50 | lr: 0.0001 51 | weight_decay: 0.0001 52 | parameter_groups: 53 | - - - ^decoder 54 | - {} 55 | - - - ^(fc|out_proj) 56 | - {} 57 | learning_rate_scheduler: 58 | type: linear_with_warmup 59 | warmup_steps: 5000 60 | last_epoch: -1 61 | num_epochs: 10 62 | cuda_device: 0 63 | grad_norm: 0.1 64 | patience: 10 65 | validation_metric: "-loss" 66 | tensorboard_writer: 67 | summary_interval: 100 68 | should_log_parameter_statistics: false 69 | -------------------------------------------------------------------------------- /expt/network_aggregation/wiki_univariate/forecast/two_hops/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | series_len: 1827 17 | agg_type: mean 18 | peek: true 19 | num_layers: 8 20 | hidden_size: 160 21 | dropout: 0.1 22 | forecast_length: 28 23 | backcast_length: 112 24 | test_lengths: [7, 14, 21, 28] 25 | max_neighbours: 4 26 | max_agg_neighbours: 4 27 | max_eval_neighbours: 8 28 | n_hops: 2 29 | hop_scale: 1 30 | neigh_sample: true 31 | base_model_config: expt/pure_time_series/wiki_univariate/08_radflow_no_network/config.yaml 32 | base_model_weights: expt/pure_time_series/wiki_univariate/08_radflow_no_network/serialization/best.th 33 | initializer: 34 | regexes: 35 | - - ^decoder.weight* 36 | - orthogonal 37 | - - ^decoder.bias* 38 | - zero 39 | data_loader: 40 | batch_size: 64 41 | shuffle: false 42 | batches_per_epoch: 10000 43 | validation_data_loader: 44 | batch_size: 64 45 | trainer: 46 | type: apex_gradient_descent 47 | use_amp: false 48 | apex_opt_level: O1 49 | keep_batchnorm_fp32: None 50 | optimizer: 51 | type: adamw 52 | lr: 0.0001 53 | weight_decay: 0.0001 54 | parameter_groups: 55 | - - - ^decoder 56 | - {} 57 | - - - ^(fc|out_proj) 58 | - {} 59 | learning_rate_scheduler: 60 | type: linear_with_warmup 61 | warmup_steps: 5000 62 | last_epoch: -1 63 | num_epochs: 10 64 | cuda_device: 0 65 | grad_norm: 0.1 66 | patience: 10 67 | validation_metric: "-loss" 68 | tensorboard_writer: 69 | summary_interval: 100 70 | should_log_parameter_statistics: false 71 | -------------------------------------------------------------------------------- /expt/missing_information/edges/vevo/no_hops/00/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: none 14 | num_layers: 8 15 | hidden_size: 128 16 | dropout: 0.1 17 | forecast_length: 7 18 | backcast_length: 42 19 | test_lengths: [7] 20 | peek: false 21 | max_neighbours: 4 22 | edge_missing_p: 0 23 | view_randomize_p: false 24 | forward_fill: true 25 | variant: none 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.layers.4 59 | - {} 60 | - - - ^decoder.layers.5 61 | - {} 62 | - - - ^decoder.layers.6 63 | - {} 64 | - - - ^decoder.layers.7 65 | - {} 66 | - - - ^decoder.out_f 67 | - {} 68 | learning_rate_scheduler: 69 | type: linear_with_warmup 70 | warmup_steps: 5000 71 | last_epoch: -1 72 | num_epochs: 10 73 | cuda_device: 0 74 | grad_norm: 0.1 75 | patience: 10 76 | validation_metric: "-loss" 77 | tensorboard_writer: 78 | summary_interval: 100 79 | should_log_parameter_statistics: false 80 | -------------------------------------------------------------------------------- /expt/missing_information/views/vevo/no_hops/00/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: none 14 | num_layers: 8 15 | hidden_size: 128 16 | dropout: 0.1 17 | forecast_length: 7 18 | backcast_length: 42 19 | test_lengths: [7] 20 | peek: false 21 | max_neighbours: 4 22 | view_missing_p: 0 23 | view_randomize_p: false 24 | forward_fill: true 25 | variant: none 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.layers.4 59 | - {} 60 | - - - ^decoder.layers.5 61 | - {} 62 | - - - ^decoder.layers.6 63 | - {} 64 | - - - ^decoder.layers.7 65 | - {} 66 | - - - ^decoder.out_f 67 | - {} 68 | learning_rate_scheduler: 69 | type: linear_with_warmup 70 | warmup_steps: 5000 71 | last_epoch: -1 72 | num_epochs: 10 73 | cuda_device: 0 74 | grad_norm: 0.1 75 | patience: 10 76 | validation_metric: "-loss" 77 | tensorboard_writer: 78 | summary_interval: 100 79 | should_log_parameter_statistics: false 80 | -------------------------------------------------------------------------------- /expt/missing_information/edges/vevo/no_hops/20/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: none 14 | num_layers: 8 15 | hidden_size: 128 16 | dropout: 0.1 17 | forecast_length: 7 18 | backcast_length: 42 19 | test_lengths: [7] 20 | peek: false 21 | max_neighbours: 4 22 | edge_missing_p: 0.2 23 | view_randomize_p: false 24 | forward_fill: true 25 | variant: none 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.layers.4 59 | - {} 60 | - - - ^decoder.layers.5 61 | - {} 62 | - - - ^decoder.layers.6 63 | - {} 64 | - - - ^decoder.layers.7 65 | - {} 66 | - - - ^decoder.out_f 67 | - {} 68 | learning_rate_scheduler: 69 | type: linear_with_warmup 70 | warmup_steps: 5000 71 | last_epoch: -1 72 | num_epochs: 10 73 | cuda_device: 0 74 | grad_norm: 0.1 75 | patience: 10 76 | validation_metric: "-loss" 77 | tensorboard_writer: 78 | summary_interval: 100 79 | should_log_parameter_statistics: false 80 | -------------------------------------------------------------------------------- /expt/missing_information/edges/vevo/no_hops/40/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: none 14 | num_layers: 8 15 | hidden_size: 128 16 | dropout: 0.1 17 | forecast_length: 7 18 | backcast_length: 42 19 | test_lengths: [7] 20 | peek: false 21 | max_neighbours: 4 22 | edge_missing_p: 0.4 23 | view_randomize_p: false 24 | forward_fill: true 25 | variant: none 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.layers.4 59 | - {} 60 | - - - ^decoder.layers.5 61 | - {} 62 | - - - ^decoder.layers.6 63 | - {} 64 | - - - ^decoder.layers.7 65 | - {} 66 | - - - ^decoder.out_f 67 | - {} 68 | learning_rate_scheduler: 69 | type: linear_with_warmup 70 | warmup_steps: 5000 71 | last_epoch: -1 72 | num_epochs: 10 73 | cuda_device: 0 74 | grad_norm: 0.1 75 | patience: 10 76 | validation_metric: "-loss" 77 | tensorboard_writer: 78 | summary_interval: 100 79 | should_log_parameter_statistics: false 80 | -------------------------------------------------------------------------------- /expt/missing_information/edges/vevo/no_hops/60/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: none 14 | num_layers: 8 15 | hidden_size: 128 16 | dropout: 0.1 17 | forecast_length: 7 18 | backcast_length: 42 19 | test_lengths: [7] 20 | peek: false 21 | max_neighbours: 4 22 | edge_missing_p: 0.6 23 | view_randomize_p: false 24 | forward_fill: true 25 | variant: none 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.layers.4 59 | - {} 60 | - - - ^decoder.layers.5 61 | - {} 62 | - - - ^decoder.layers.6 63 | - {} 64 | - - - ^decoder.layers.7 65 | - {} 66 | - - - ^decoder.out_f 67 | - {} 68 | learning_rate_scheduler: 69 | type: linear_with_warmup 70 | warmup_steps: 5000 71 | last_epoch: -1 72 | num_epochs: 10 73 | cuda_device: 0 74 | grad_norm: 0.1 75 | patience: 10 76 | validation_metric: "-loss" 77 | tensorboard_writer: 78 | summary_interval: 100 79 | should_log_parameter_statistics: false 80 | -------------------------------------------------------------------------------- /expt/missing_information/edges/vevo/no_hops/80/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: none 14 | num_layers: 8 15 | hidden_size: 128 16 | dropout: 0.1 17 | forecast_length: 7 18 | backcast_length: 42 19 | test_lengths: [7] 20 | peek: false 21 | max_neighbours: 4 22 | edge_missing_p: 0.8 23 | view_randomize_p: false 24 | forward_fill: true 25 | variant: none 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.layers.4 59 | - {} 60 | - - - ^decoder.layers.5 61 | - {} 62 | - - - ^decoder.layers.6 63 | - {} 64 | - - - ^decoder.layers.7 65 | - {} 66 | - - - ^decoder.out_f 67 | - {} 68 | learning_rate_scheduler: 69 | type: linear_with_warmup 70 | warmup_steps: 5000 71 | last_epoch: -1 72 | num_epochs: 10 73 | cuda_device: 0 74 | grad_norm: 0.1 75 | patience: 10 76 | validation_metric: "-loss" 77 | tensorboard_writer: 78 | summary_interval: 100 79 | should_log_parameter_statistics: false 80 | -------------------------------------------------------------------------------- /expt/missing_information/views/vevo/no_hops/20/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: none 14 | num_layers: 8 15 | hidden_size: 128 16 | dropout: 0.1 17 | forecast_length: 7 18 | backcast_length: 42 19 | test_lengths: [7] 20 | peek: false 21 | max_neighbours: 4 22 | view_missing_p: 0.2 23 | view_randomize_p: false 24 | forward_fill: true 25 | variant: none 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.layers.4 59 | - {} 60 | - - - ^decoder.layers.5 61 | - {} 62 | - - - ^decoder.layers.6 63 | - {} 64 | - - - ^decoder.layers.7 65 | - {} 66 | - - - ^decoder.out_f 67 | - {} 68 | learning_rate_scheduler: 69 | type: linear_with_warmup 70 | warmup_steps: 5000 71 | last_epoch: -1 72 | num_epochs: 10 73 | cuda_device: 0 74 | grad_norm: 0.1 75 | patience: 10 76 | validation_metric: "-loss" 77 | tensorboard_writer: 78 | summary_interval: 100 79 | should_log_parameter_statistics: false 80 | -------------------------------------------------------------------------------- /expt/missing_information/views/vevo/no_hops/40/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: none 14 | num_layers: 8 15 | hidden_size: 128 16 | dropout: 0.1 17 | forecast_length: 7 18 | backcast_length: 42 19 | test_lengths: [7] 20 | peek: false 21 | max_neighbours: 4 22 | view_missing_p: 0.4 23 | view_randomize_p: false 24 | forward_fill: true 25 | variant: none 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.layers.4 59 | - {} 60 | - - - ^decoder.layers.5 61 | - {} 62 | - - - ^decoder.layers.6 63 | - {} 64 | - - - ^decoder.layers.7 65 | - {} 66 | - - - ^decoder.out_f 67 | - {} 68 | learning_rate_scheduler: 69 | type: linear_with_warmup 70 | warmup_steps: 5000 71 | last_epoch: -1 72 | num_epochs: 10 73 | cuda_device: 0 74 | grad_norm: 0.1 75 | patience: 10 76 | validation_metric: "-loss" 77 | tensorboard_writer: 78 | summary_interval: 100 79 | should_log_parameter_statistics: false 80 | -------------------------------------------------------------------------------- /expt/missing_information/views/vevo/no_hops/60/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: none 14 | num_layers: 8 15 | hidden_size: 128 16 | dropout: 0.1 17 | forecast_length: 7 18 | backcast_length: 42 19 | test_lengths: [7] 20 | peek: false 21 | max_neighbours: 4 22 | view_missing_p: 0.6 23 | view_randomize_p: false 24 | forward_fill: true 25 | variant: none 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.layers.4 59 | - {} 60 | - - - ^decoder.layers.5 61 | - {} 62 | - - - ^decoder.layers.6 63 | - {} 64 | - - - ^decoder.layers.7 65 | - {} 66 | - - - ^decoder.out_f 67 | - {} 68 | learning_rate_scheduler: 69 | type: linear_with_warmup 70 | warmup_steps: 5000 71 | last_epoch: -1 72 | num_epochs: 10 73 | cuda_device: 0 74 | grad_norm: 0.1 75 | patience: 10 76 | validation_metric: "-loss" 77 | tensorboard_writer: 78 | summary_interval: 100 79 | should_log_parameter_statistics: false 80 | -------------------------------------------------------------------------------- /expt/missing_information/views/vevo/no_hops/80/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_all_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: none 14 | num_layers: 8 15 | hidden_size: 128 16 | dropout: 0.1 17 | forecast_length: 7 18 | backcast_length: 42 19 | test_lengths: [7] 20 | peek: false 21 | max_neighbours: 4 22 | view_missing_p: 0.8 23 | view_randomize_p: false 24 | forward_fill: true 25 | variant: none 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.layers.4 59 | - {} 60 | - - - ^decoder.layers.5 61 | - {} 62 | - - - ^decoder.layers.6 63 | - {} 64 | - - - ^decoder.layers.7 65 | - {} 66 | - - - ^decoder.out_f 67 | - {} 68 | learning_rate_scheduler: 69 | type: linear_with_warmup 70 | warmup_steps: 5000 71 | last_epoch: -1 72 | num_epochs: 10 73 | cuda_device: 0 74 | grad_norm: 0.1 75 | patience: 10 76 | validation_metric: "-loss" 77 | tensorboard_writer: 78 | summary_interval: 100 79 | should_log_parameter_statistics: false 80 | -------------------------------------------------------------------------------- /expt/network_aggregation/wiki_bivariate/forecast/two_hops/11_lstm_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: baseline_lstm 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | multi_views_path: ./data/wiki/views_split.hdf5 17 | series_len: 1827 18 | agg_type: mean 19 | peek: true 20 | num_layers: 8 21 | hidden_size: 160 22 | dropout: 0.1 23 | forecast_length: 28 24 | backcast_length: 112 25 | test_lengths: [7, 14, 21, 28] 26 | max_neighbours: 4 27 | max_agg_neighbours: 4 28 | max_eval_neighbours: 8 29 | n_hops: 2 30 | hop_scale: 1 31 | neigh_sample: true 32 | base_model_config: expt/pure_time_series/wiki_bivariate/08_radflow_no_network/config.yaml 33 | base_model_weights: expt/pure_time_series/wiki_bivariate/08_radflow_no_network/serialization/best.th 34 | initializer: 35 | regexes: 36 | - - ^decoder.weight* 37 | - orthogonal 38 | - - ^decoder.bias* 39 | - zero 40 | data_loader: 41 | batch_size: 64 42 | shuffle: false 43 | batches_per_epoch: 10000 44 | validation_data_loader: 45 | batch_size: 64 46 | trainer: 47 | type: apex_gradient_descent 48 | use_amp: false 49 | apex_opt_level: O1 50 | keep_batchnorm_fp32: None 51 | optimizer: 52 | type: adamw 53 | lr: 0.0001 54 | weight_decay: 0.0001 55 | parameter_groups: 56 | - - - ^decoder 57 | - {} 58 | - - - ^(fc|out_proj) 59 | - {} 60 | learning_rate_scheduler: 61 | type: linear_with_warmup 62 | warmup_steps: 5000 63 | last_epoch: -1 64 | num_epochs: 10 65 | cuda_device: 0 66 | grad_norm: 0.1 67 | patience: 10 68 | validation_metric: "-loss" 69 | tensorboard_writer: 70 | summary_interval: 100 71 | should_log_parameter_statistics: false 72 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_dynamic/imputation/one_hop/12_radflow_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: mean 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 120 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | initializer: 25 | regexes: 26 | - - ^decoder.layers.*.layer.weight* 27 | - orthogonal 28 | - - ^decoder.layers.*.layer.bias 29 | - zero 30 | data_loader: 31 | batch_size: 64 32 | shuffle: false 33 | batches_per_epoch: 10000 34 | validation_data_loader: 35 | batch_size: 64 36 | trainer: 37 | type: apex_gradient_descent 38 | use_amp: false 39 | apex_opt_level: O1 40 | keep_batchnorm_fp32: None 41 | optimizer: 42 | type: adamw 43 | lr: 0.0001 44 | weight_decay: 0.0001 45 | parameter_groups: 46 | - - - ^decoder.in_proj 47 | - {} 48 | - - - ^decoder.layers.0 49 | - {} 50 | - - - ^decoder.layers.1 51 | - {} 52 | - - - ^decoder.layers.2 53 | - {} 54 | - - - ^decoder.layers.3 55 | - {} 56 | - - - ^decoder.layers.4 57 | - {} 58 | - - - ^decoder.layers.5 59 | - {} 60 | - - - ^decoder.layers.6 61 | - {} 62 | - - - ^decoder.layers.7 63 | - {} 64 | - - - ^decoder.out_f 65 | - {} 66 | - - - ^fc 67 | - {} 68 | learning_rate_scheduler: 69 | type: linear_with_warmup 70 | warmup_steps: 5000 71 | last_epoch: -1 72 | num_epochs: 10 73 | cuda_device: 0 74 | grad_norm: 0.1 75 | patience: 10 76 | validation_metric: "-loss" 77 | tensorboard_writer: 78 | summary_interval: 100 79 | should_log_parameter_statistics: false 80 | -------------------------------------------------------------------------------- /expt/ablation_studies/vevo_dynamic/16_radflow_h/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 124 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | variant: h 25 | initializer: 26 | regexes: 27 | - - ^decoder.layers.*.layer.weight* 28 | - orthogonal 29 | - - ^decoder.layers.*.layer.bias 30 | - zero 31 | data_loader: 32 | batch_size: 64 33 | shuffle: false 34 | batches_per_epoch: 10000 35 | validation_data_loader: 36 | batch_size: 64 37 | trainer: 38 | type: apex_gradient_descent 39 | use_amp: false 40 | apex_opt_level: O1 41 | keep_batchnorm_fp32: None 42 | optimizer: 43 | type: adamw 44 | lr: 0.0001 45 | weight_decay: 0.0001 46 | parameter_groups: 47 | - - - ^decoder.in_proj 48 | - {} 49 | - - - ^decoder.layers.0 50 | - {} 51 | - - - ^decoder.layers.1 52 | - {} 53 | - - - ^decoder.layers.2 54 | - {} 55 | - - - ^decoder.layers.3 56 | - {} 57 | - - - ^decoder.layers.4 58 | - {} 59 | - - - ^decoder.layers.5 60 | - {} 61 | - - - ^decoder.layers.6 62 | - {} 63 | - - - ^decoder.layers.7 64 | - {} 65 | - - - ^decoder.out_f 66 | - {} 67 | - - - ^attn 68 | - {} 69 | - - - ^fc 70 | - {} 71 | learning_rate_scheduler: 72 | type: linear_with_warmup 73 | warmup_steps: 5000 74 | last_epoch: -1 75 | num_epochs: 10 76 | cuda_device: 0 77 | grad_norm: 0.1 78 | patience: 10 79 | validation_metric: "-loss" 80 | tensorboard_writer: 81 | summary_interval: 100 82 | should_log_parameter_statistics: false 83 | -------------------------------------------------------------------------------- /expt/ablation_studies/vevo_dynamic/17_radflow_p/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 124 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | variant: p 25 | initializer: 26 | regexes: 27 | - - ^decoder.layers.*.layer.weight* 28 | - orthogonal 29 | - - ^decoder.layers.*.layer.bias 30 | - zero 31 | data_loader: 32 | batch_size: 64 33 | shuffle: false 34 | batches_per_epoch: 10000 35 | validation_data_loader: 36 | batch_size: 64 37 | trainer: 38 | type: apex_gradient_descent 39 | use_amp: false 40 | apex_opt_level: O1 41 | keep_batchnorm_fp32: None 42 | optimizer: 43 | type: adamw 44 | lr: 0.0001 45 | weight_decay: 0.0001 46 | parameter_groups: 47 | - - - ^decoder.in_proj 48 | - {} 49 | - - - ^decoder.layers.0 50 | - {} 51 | - - - ^decoder.layers.1 52 | - {} 53 | - - - ^decoder.layers.2 54 | - {} 55 | - - - ^decoder.layers.3 56 | - {} 57 | - - - ^decoder.layers.4 58 | - {} 59 | - - - ^decoder.layers.5 60 | - {} 61 | - - - ^decoder.layers.6 62 | - {} 63 | - - - ^decoder.layers.7 64 | - {} 65 | - - - ^decoder.out_f 66 | - {} 67 | - - - ^attn 68 | - {} 69 | - - - ^fc 70 | - {} 71 | learning_rate_scheduler: 72 | type: linear_with_warmup 73 | warmup_steps: 5000 74 | last_epoch: -1 75 | num_epochs: 10 76 | cuda_device: 0 77 | grad_norm: 0.1 78 | patience: 10 79 | validation_metric: "-loss" 80 | tensorboard_writer: 81 | summary_interval: 100 82 | should_log_parameter_statistics: false 83 | -------------------------------------------------------------------------------- /expt/ablation_studies/vevo_dynamic/18_radflow_q/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 124 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | variant: q 25 | initializer: 26 | regexes: 27 | - - ^decoder.layers.*.layer.weight* 28 | - orthogonal 29 | - - ^decoder.layers.*.layer.bias 30 | - zero 31 | data_loader: 32 | batch_size: 64 33 | shuffle: false 34 | batches_per_epoch: 10000 35 | validation_data_loader: 36 | batch_size: 64 37 | trainer: 38 | type: apex_gradient_descent 39 | use_amp: false 40 | apex_opt_level: O1 41 | keep_batchnorm_fp32: None 42 | optimizer: 43 | type: adamw 44 | lr: 0.0001 45 | weight_decay: 0.0001 46 | parameter_groups: 47 | - - - ^decoder.in_proj 48 | - {} 49 | - - - ^decoder.layers.0 50 | - {} 51 | - - - ^decoder.layers.1 52 | - {} 53 | - - - ^decoder.layers.2 54 | - {} 55 | - - - ^decoder.layers.3 56 | - {} 57 | - - - ^decoder.layers.4 58 | - {} 59 | - - - ^decoder.layers.5 60 | - {} 61 | - - - ^decoder.layers.6 62 | - {} 63 | - - - ^decoder.layers.7 64 | - {} 65 | - - - ^decoder.out_f 66 | - {} 67 | - - - ^attn 68 | - {} 69 | - - - ^fc 70 | - {} 71 | learning_rate_scheduler: 72 | type: linear_with_warmup 73 | warmup_steps: 5000 74 | last_epoch: -1 75 | num_epochs: 10 76 | cuda_device: 0 77 | grad_norm: 0.1 78 | patience: 10 79 | validation_metric: "-loss" 80 | tensorboard_writer: 81 | summary_interval: 100 82 | should_log_parameter_statistics: false 83 | -------------------------------------------------------------------------------- /expt/ablation_studies/vevo_dynamic/19_radflow_hp/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | variant: hp 25 | initializer: 26 | regexes: 27 | - - ^decoder.layers.*.layer.weight* 28 | - orthogonal 29 | - - ^decoder.layers.*.layer.bias 30 | - zero 31 | data_loader: 32 | batch_size: 64 33 | shuffle: false 34 | batches_per_epoch: 10000 35 | validation_data_loader: 36 | batch_size: 64 37 | trainer: 38 | type: apex_gradient_descent 39 | use_amp: false 40 | apex_opt_level: O1 41 | keep_batchnorm_fp32: None 42 | optimizer: 43 | type: adamw 44 | lr: 0.0001 45 | weight_decay: 0.0001 46 | parameter_groups: 47 | - - - ^decoder.in_proj 48 | - {} 49 | - - - ^decoder.layers.0 50 | - {} 51 | - - - ^decoder.layers.1 52 | - {} 53 | - - - ^decoder.layers.2 54 | - {} 55 | - - - ^decoder.layers.3 56 | - {} 57 | - - - ^decoder.layers.4 58 | - {} 59 | - - - ^decoder.layers.5 60 | - {} 61 | - - - ^decoder.layers.6 62 | - {} 63 | - - - ^decoder.layers.7 64 | - {} 65 | - - - ^decoder.out_f 66 | - {} 67 | - - - ^attn 68 | - {} 69 | - - - ^fc 70 | - {} 71 | learning_rate_scheduler: 72 | type: linear_with_warmup 73 | warmup_steps: 5000 74 | last_epoch: -1 75 | num_epochs: 10 76 | cuda_device: 0 77 | grad_norm: 0.1 78 | patience: 10 79 | validation_metric: "-loss" 80 | tensorboard_writer: 81 | summary_interval: 100 82 | should_log_parameter_statistics: false 83 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_dynamic/imputation/one_hop/14_radflow_gat/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: gat 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 120 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | initializer: 25 | regexes: 26 | - - ^decoder.layers.*.layer.weight* 27 | - orthogonal 28 | - - ^decoder.layers.*.layer.bias 29 | - zero 30 | data_loader: 31 | batch_size: 64 32 | shuffle: false 33 | batches_per_epoch: 10000 34 | validation_data_loader: 35 | batch_size: 64 36 | trainer: 37 | type: apex_gradient_descent 38 | use_amp: false 39 | apex_opt_level: O1 40 | keep_batchnorm_fp32: None 41 | optimizer: 42 | type: adamw 43 | lr: 0.0001 44 | weight_decay: 0.0001 45 | parameter_groups: 46 | - - - ^decoder.in_proj 47 | - {} 48 | - - - ^decoder.layers.0 49 | - {} 50 | - - - ^decoder.layers.1 51 | - {} 52 | - - - ^decoder.layers.2 53 | - {} 54 | - - - ^decoder.layers.3 55 | - {} 56 | - - - ^decoder.layers.4 57 | - {} 58 | - - - ^decoder.layers.5 59 | - {} 60 | - - - ^decoder.layers.6 61 | - {} 62 | - - - ^decoder.layers.7 63 | - {} 64 | - - - ^decoder.out_f 65 | - {} 66 | - - - ^conv 67 | - {} 68 | - - - ^fc 69 | - {} 70 | learning_rate_scheduler: 71 | type: linear_with_warmup 72 | warmup_steps: 5000 73 | last_epoch: -1 74 | num_epochs: 10 75 | cuda_device: 0 76 | grad_norm: 0.1 77 | patience: 10 78 | validation_metric: "-loss" 79 | tensorboard_writer: 80 | summary_interval: 100 81 | should_log_parameter_statistics: false 82 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_dynamic/imputation/one_hop/15_radflow/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | initializer: 25 | regexes: 26 | - - ^decoder.layers.*.layer.weight* 27 | - orthogonal 28 | - - ^decoder.layers.*.layer.bias 29 | - zero 30 | data_loader: 31 | batch_size: 64 32 | shuffle: false 33 | batches_per_epoch: 10000 34 | validation_data_loader: 35 | batch_size: 64 36 | trainer: 37 | type: apex_gradient_descent 38 | use_amp: false 39 | apex_opt_level: O1 40 | keep_batchnorm_fp32: None 41 | optimizer: 42 | type: adamw 43 | lr: 0.0001 44 | weight_decay: 0.0001 45 | parameter_groups: 46 | - - - ^decoder.in_proj 47 | - {} 48 | - - - ^decoder.layers.0 49 | - {} 50 | - - - ^decoder.layers.1 51 | - {} 52 | - - - ^decoder.layers.2 53 | - {} 54 | - - - ^decoder.layers.3 55 | - {} 56 | - - - ^decoder.layers.4 57 | - {} 58 | - - - ^decoder.layers.5 59 | - {} 60 | - - - ^decoder.layers.6 61 | - {} 62 | - - - ^decoder.layers.7 63 | - {} 64 | - - - ^decoder.out_f 65 | - {} 66 | - - - ^attn 67 | - {} 68 | - - - ^fc 69 | - {} 70 | learning_rate_scheduler: 71 | type: linear_with_warmup 72 | warmup_steps: 5000 73 | last_epoch: -1 74 | num_epochs: 10 75 | cuda_device: 0 76 | grad_norm: 0.1 77 | patience: 10 78 | validation_metric: "-loss" 79 | tensorboard_writer: 80 | summary_interval: 100 81 | should_log_parameter_statistics: false 82 | -------------------------------------------------------------------------------- /expt/ablation_studies/vevo_dynamic/20_radflow_hpq/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 104 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | variant: hpq 25 | initializer: 26 | regexes: 27 | - - ^decoder.layers.*.layer.weight* 28 | - orthogonal 29 | - - ^decoder.layers.*.layer.bias 30 | - zero 31 | data_loader: 32 | batch_size: 64 33 | shuffle: false 34 | batches_per_epoch: 10000 35 | validation_data_loader: 36 | batch_size: 64 37 | trainer: 38 | type: apex_gradient_descent 39 | use_amp: false 40 | apex_opt_level: O1 41 | keep_batchnorm_fp32: None 42 | optimizer: 43 | type: adamw 44 | lr: 0.0001 45 | weight_decay: 0.0001 46 | parameter_groups: 47 | - - - ^decoder.in_proj 48 | - {} 49 | - - - ^decoder.layers.0 50 | - {} 51 | - - - ^decoder.layers.1 52 | - {} 53 | - - - ^decoder.layers.2 54 | - {} 55 | - - - ^decoder.layers.3 56 | - {} 57 | - - - ^decoder.layers.4 58 | - {} 59 | - - - ^decoder.layers.5 60 | - {} 61 | - - - ^decoder.layers.6 62 | - {} 63 | - - - ^decoder.layers.7 64 | - {} 65 | - - - ^decoder.out_f 66 | - {} 67 | - - - ^attn 68 | - {} 69 | - - - ^fc 70 | - {} 71 | learning_rate_scheduler: 72 | type: linear_with_warmup 73 | warmup_steps: 5000 74 | last_epoch: -1 75 | num_epochs: 10 76 | cuda_device: 0 77 | grad_norm: 0.1 78 | patience: 10 79 | validation_metric: "-loss" 80 | tensorboard_writer: 81 | summary_interval: 100 82 | should_log_parameter_statistics: false 83 | -------------------------------------------------------------------------------- /expt/ablation_studies/vevo_dynamic/22_radflow_one_head/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | n_heads: 1 25 | initializer: 26 | regexes: 27 | - - ^decoder.layers.*.layer.weight* 28 | - orthogonal 29 | - - ^decoder.layers.*.layer.bias 30 | - zero 31 | data_loader: 32 | batch_size: 64 33 | shuffle: false 34 | batches_per_epoch: 10000 35 | validation_data_loader: 36 | batch_size: 64 37 | trainer: 38 | type: apex_gradient_descent 39 | use_amp: false 40 | apex_opt_level: O1 41 | keep_batchnorm_fp32: None 42 | optimizer: 43 | type: adamw 44 | lr: 0.0001 45 | weight_decay: 0.0001 46 | parameter_groups: 47 | - - - ^decoder.in_proj 48 | - {} 49 | - - - ^decoder.layers.0 50 | - {} 51 | - - - ^decoder.layers.1 52 | - {} 53 | - - - ^decoder.layers.2 54 | - {} 55 | - - - ^decoder.layers.3 56 | - {} 57 | - - - ^decoder.layers.4 58 | - {} 59 | - - - ^decoder.layers.5 60 | - {} 61 | - - - ^decoder.layers.6 62 | - {} 63 | - - - ^decoder.layers.7 64 | - {} 65 | - - - ^decoder.out_f 66 | - {} 67 | - - - ^attn 68 | - {} 69 | - - - ^fc 70 | - {} 71 | learning_rate_scheduler: 72 | type: linear_with_warmup 73 | warmup_steps: 5000 74 | last_epoch: -1 75 | num_epochs: 10 76 | cuda_device: 0 77 | grad_norm: 0.1 78 | patience: 10 79 | validation_metric: "-loss" 80 | tensorboard_writer: 81 | summary_interval: 100 82 | should_log_parameter_statistics: false 83 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_dynamic/imputation/one_hop/13_radflow_graphsage/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: sage 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 118 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | initializer: 25 | regexes: 26 | - - ^decoder.layers.*.layer.weight* 27 | - orthogonal 28 | - - ^decoder.layers.*.layer.bias 29 | - zero 30 | data_loader: 31 | batch_size: 64 32 | shuffle: false 33 | batches_per_epoch: 10000 34 | validation_data_loader: 35 | batch_size: 64 36 | trainer: 37 | type: apex_gradient_descent 38 | use_amp: false 39 | apex_opt_level: O1 40 | keep_batchnorm_fp32: None 41 | optimizer: 42 | type: adamw 43 | lr: 0.0001 44 | weight_decay: 0.0001 45 | parameter_groups: 46 | - - - ^decoder.in_proj 47 | - {} 48 | - - - ^decoder.layers.0 49 | - {} 50 | - - - ^decoder.layers.1 51 | - {} 52 | - - - ^decoder.layers.2 53 | - {} 54 | - - - ^decoder.layers.3 55 | - {} 56 | - - - ^decoder.layers.4 57 | - {} 58 | - - - ^decoder.layers.5 59 | - {} 60 | - - - ^decoder.layers.6 61 | - {} 62 | - - - ^decoder.layers.7 63 | - {} 64 | - - - ^decoder.out_f 65 | - {} 66 | - - - ^conv 67 | - {} 68 | - - - ^fc 69 | - {} 70 | learning_rate_scheduler: 71 | type: linear_with_warmup 72 | warmup_steps: 5000 73 | last_epoch: -1 74 | num_epochs: 10 75 | cuda_device: 0 76 | grad_norm: 0.1 77 | patience: 10 78 | validation_metric: "-loss" 79 | tensorboard_writer: 80 | summary_interval: 100 81 | should_log_parameter_statistics: false 82 | -------------------------------------------------------------------------------- /expt/ablation_studies/vevo_dynamic/21_radflow_no_final_proj/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | attn_out_proj: false 25 | initializer: 26 | regexes: 27 | - - ^decoder.layers.*.layer.weight* 28 | - orthogonal 29 | - - ^decoder.layers.*.layer.bias 30 | - zero 31 | data_loader: 32 | batch_size: 64 33 | shuffle: false 34 | batches_per_epoch: 10000 35 | validation_data_loader: 36 | batch_size: 64 37 | trainer: 38 | type: apex_gradient_descent 39 | use_amp: false 40 | apex_opt_level: O1 41 | keep_batchnorm_fp32: None 42 | optimizer: 43 | type: adamw 44 | lr: 0.0001 45 | weight_decay: 0.0001 46 | parameter_groups: 47 | - - - ^decoder.in_proj 48 | - {} 49 | - - - ^decoder.layers.0 50 | - {} 51 | - - - ^decoder.layers.1 52 | - {} 53 | - - - ^decoder.layers.2 54 | - {} 55 | - - - ^decoder.layers.3 56 | - {} 57 | - - - ^decoder.layers.4 58 | - {} 59 | - - - ^decoder.layers.5 60 | - {} 61 | - - - ^decoder.layers.6 62 | - {} 63 | - - - ^decoder.layers.7 64 | - {} 65 | - - - ^decoder.out_f 66 | - {} 67 | - - - ^attn 68 | - {} 69 | - - - ^fc 70 | - {} 71 | learning_rate_scheduler: 72 | type: linear_with_warmup 73 | warmup_steps: 5000 74 | last_epoch: -1 75 | num_epochs: 10 76 | cuda_device: 0 77 | grad_norm: 0.1 78 | patience: 10 79 | validation_metric: "-loss" 80 | tensorboard_writer: 81 | summary_interval: 100 82 | should_log_parameter_statistics: false 83 | -------------------------------------------------------------------------------- /expt/counterfactuals/vevo/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow_vevo 13 | out_path: expt/counterfactuals/vevo/serialization/scores.jsonl 14 | agg_type: attention 15 | peek: true 16 | num_layers: 8 17 | hidden_size: 116 18 | dropout: 0.1 19 | forecast_length: 7 20 | backcast_length: 42 21 | test_lengths: [7] 22 | max_neighbours: 4 23 | max_agg_neighbours: 4 24 | neigh_sample: true 25 | initializer: 26 | regexes: 27 | - - ^decoder.layers.*.layer.weight* 28 | - orthogonal 29 | - - ^decoder.layers.*.layer.bias 30 | - zero 31 | data_loader: 32 | batch_size: 64 33 | shuffle: false 34 | batches_per_epoch: 10000 35 | validation_data_loader: 36 | batch_size: 64 37 | trainer: 38 | type: apex_gradient_descent 39 | use_amp: false 40 | apex_opt_level: O1 41 | keep_batchnorm_fp32: None 42 | optimizer: 43 | type: adamw 44 | lr: 0.0001 45 | weight_decay: 0.0001 46 | parameter_groups: 47 | - - - ^decoder.in_proj 48 | - {} 49 | - - - ^decoder.layers.0 50 | - {} 51 | - - - ^decoder.layers.1 52 | - {} 53 | - - - ^decoder.layers.2 54 | - {} 55 | - - - ^decoder.layers.3 56 | - {} 57 | - - - ^decoder.layers.4 58 | - {} 59 | - - - ^decoder.layers.5 60 | - {} 61 | - - - ^decoder.layers.6 62 | - {} 63 | - - - ^decoder.layers.7 64 | - {} 65 | - - - ^decoder.out_f 66 | - {} 67 | - - - ^attn 68 | - {} 69 | - - - ^fc 70 | - {} 71 | learning_rate_scheduler: 72 | type: linear_with_warmup 73 | warmup_steps: 5000 74 | last_epoch: -1 75 | num_epochs: 10 76 | cuda_device: 0 77 | grad_norm: 0.1 78 | patience: 10 79 | validation_metric: "-loss" 80 | tensorboard_writer: 81 | summary_interval: 100 82 | should_log_parameter_statistics: false 83 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_univariate/08_radflow_no_network/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | series_len: 1827 17 | agg_type: none 18 | num_layers: 8 19 | hidden_size: 128 20 | dropout: 0.1 21 | forecast_length: 28 22 | backcast_length: 112 23 | test_lengths: [7, 14, 21, 28] 24 | peek: false 25 | max_neighbours: 4 26 | variant: none 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | learning_rate_scheduler: 70 | type: linear_with_warmup 71 | warmup_steps: 5000 72 | last_epoch: -1 73 | num_epochs: 10 74 | cuda_device: 0 75 | grad_norm: 0.1 76 | patience: 10 77 | validation_metric: "-loss" 78 | tensorboard_writer: 79 | summary_interval: 100 80 | should_log_parameter_statistics: false 81 | -------------------------------------------------------------------------------- /expt/missing_information/edges/vevo/one_hop/00/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | edge_missing_p: 0 25 | view_randomize_p: false 26 | forward_fill: true 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/missing_information/views/vevo/one_hop/00/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | view_missing_p: 0 25 | view_randomize_p: false 26 | forward_fill: true 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/missing_information/edges/vevo/one_hop/20/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | edge_missing_p: 0.2 25 | view_randomize_p: false 26 | forward_fill: true 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/missing_information/edges/vevo/one_hop/40/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | edge_missing_p: 0.4 25 | view_randomize_p: false 26 | forward_fill: true 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/missing_information/edges/vevo/one_hop/60/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | edge_missing_p: 0.6 25 | view_randomize_p: false 26 | forward_fill: true 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/missing_information/edges/vevo/one_hop/80/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | edge_missing_p: 0.8 25 | view_randomize_p: false 26 | forward_fill: true 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/missing_information/views/vevo/one_hop/20/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | view_missing_p: 0.2 25 | view_randomize_p: false 26 | forward_fill: true 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/missing_information/views/vevo/one_hop/40/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | view_missing_p: 0.4 25 | view_randomize_p: false 26 | forward_fill: true 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/missing_information/views/vevo/one_hop/60/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | view_missing_p: 0.6 25 | view_randomize_p: false 26 | forward_fill: true 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/missing_information/views/vevo/one_hop/80/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 116 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | neigh_sample: true 24 | view_missing_p: 0.8 25 | view_randomize_p: false 26 | forward_fill: true 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_dynamic/imputation/two_hops/14_radflow_gat/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: gat 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 120 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | max_eval_neighbours: 8 24 | neigh_sample: true 25 | n_hops: 2 26 | hop_scale: 1 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_static/imputation/one_hop/12_radflow_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: mean 14 | data_path: ./data/vevo/vevo_static.hdf5 15 | key2pos_path: ./data/vevo/vevo_static.key2pos.pkl 16 | peek: true 17 | num_layers: 8 18 | hidden_size: 120 19 | dropout: 0.1 20 | forecast_length: 7 21 | backcast_length: 42 22 | test_lengths: [7] 23 | max_neighbours: 4 24 | max_agg_neighbours: 4 25 | neigh_sample: true 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.layers.4 59 | - {} 60 | - - - ^decoder.layers.5 61 | - {} 62 | - - - ^decoder.layers.6 63 | - {} 64 | - - - ^decoder.layers.7 65 | - {} 66 | - - - ^decoder.out_f 67 | - {} 68 | - - - ^fc 69 | - {} 70 | learning_rate_scheduler: 71 | type: linear_with_warmup 72 | warmup_steps: 5000 73 | last_epoch: -1 74 | num_epochs: 10 75 | cuda_device: 0 76 | grad_norm: 0.1 77 | patience: 10 78 | validation_metric: "-loss" 79 | tensorboard_writer: 80 | summary_interval: 100 81 | should_log_parameter_statistics: false 82 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_dynamic/imputation/two_hops/12_radflow_mean/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: mean 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 120 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | max_eval_neighbours: 8 24 | neigh_sample: true 25 | n_hops: 2 26 | hop_scale: 1 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_dynamic/imputation/two_hops/15_radflow/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 112 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | max_eval_neighbours: 8 24 | neigh_sample: true 25 | n_hops: 2 26 | hop_scale: 1 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_dynamic/imputation/two_hops/13_radflow_graphsage/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: sage 14 | peek: true 15 | num_layers: 8 16 | hidden_size: 118 17 | dropout: 0.1 18 | forecast_length: 7 19 | backcast_length: 42 20 | test_lengths: [7] 21 | max_neighbours: 4 22 | max_agg_neighbours: 4 23 | max_eval_neighbours: 8 24 | neigh_sample: true 25 | n_hops: 2 26 | hop_scale: 1 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/pure_time_series/wiki_bivariate/08_radflow_no_network/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | multi_views_path: ./data/wiki/views_split.hdf5 17 | series_len: 1827 18 | agg_type: none 19 | num_layers: 8 20 | hidden_size: 128 21 | dropout: 0.1 22 | forecast_length: 28 23 | backcast_length: 112 24 | test_lengths: [7, 14, 21, 28] 25 | peek: false 26 | max_neighbours: 4 27 | variant: none 28 | initializer: 29 | regexes: 30 | - - ^decoder.layers.*.layer.weight* 31 | - orthogonal 32 | - - ^decoder.layers.*.layer.bias 33 | - zero 34 | data_loader: 35 | batch_size: 64 36 | shuffle: false 37 | batches_per_epoch: 10000 38 | validation_data_loader: 39 | batch_size: 64 40 | trainer: 41 | type: apex_gradient_descent 42 | use_amp: false 43 | apex_opt_level: O1 44 | keep_batchnorm_fp32: None 45 | optimizer: 46 | type: adamw 47 | lr: 0.0001 48 | weight_decay: 0.0001 49 | parameter_groups: 50 | - - - ^decoder.in_proj 51 | - {} 52 | - - - ^decoder.layers.0 53 | - {} 54 | - - - ^decoder.layers.1 55 | - {} 56 | - - - ^decoder.layers.2 57 | - {} 58 | - - - ^decoder.layers.3 59 | - {} 60 | - - - ^decoder.layers.4 61 | - {} 62 | - - - ^decoder.layers.5 63 | - {} 64 | - - - ^decoder.layers.6 65 | - {} 66 | - - - ^decoder.layers.7 67 | - {} 68 | - - - ^decoder.out_f 69 | - {} 70 | learning_rate_scheduler: 71 | type: linear_with_warmup 72 | warmup_steps: 5000 73 | last_epoch: -1 74 | num_epochs: 10 75 | cuda_device: 0 76 | grad_norm: 0.1 77 | patience: 10 78 | validation_metric: "-loss" 79 | tensorboard_writer: 80 | summary_interval: 100 81 | should_log_parameter_statistics: false 82 | -------------------------------------------------------------------------------- /expt/ablation_studies/vevo_static/16_radflow_h/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | data_path: ./data/vevo/vevo_static.hdf5 15 | key2pos_path: ./data/vevo/vevo_static.key2pos.pkl 16 | peek: true 17 | num_layers: 8 18 | hidden_size: 124 19 | dropout: 0.1 20 | forecast_length: 7 21 | backcast_length: 42 22 | test_lengths: [7] 23 | max_neighbours: 4 24 | max_agg_neighbours: 4 25 | neigh_sample: true 26 | variant: h 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/ablation_studies/vevo_static/17_radflow_p/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | data_path: ./data/vevo/vevo_static.hdf5 15 | key2pos_path: ./data/vevo/vevo_static.key2pos.pkl 16 | peek: true 17 | num_layers: 8 18 | hidden_size: 124 19 | dropout: 0.1 20 | forecast_length: 7 21 | backcast_length: 42 22 | test_lengths: [7] 23 | max_neighbours: 4 24 | max_agg_neighbours: 4 25 | neigh_sample: true 26 | variant: p 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/ablation_studies/vevo_static/18_radflow_q/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | data_path: ./data/vevo/vevo_static.hdf5 15 | key2pos_path: ./data/vevo/vevo_static.key2pos.pkl 16 | peek: true 17 | num_layers: 8 18 | hidden_size: 124 19 | dropout: 0.1 20 | forecast_length: 7 21 | backcast_length: 42 22 | test_lengths: [7] 23 | max_neighbours: 4 24 | max_agg_neighbours: 4 25 | neigh_sample: true 26 | variant: q 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/network_aggregation/vevo_static/imputation/one_hop/14_radflow_gat/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: gat 14 | data_path: ./data/vevo/vevo_static.hdf5 15 | key2pos_path: ./data/vevo/vevo_static.key2pos.pkl 16 | peek: true 17 | num_layers: 8 18 | hidden_size: 120 19 | dropout: 0.1 20 | forecast_length: 7 21 | backcast_length: 42 22 | test_lengths: [7] 23 | max_neighbours: 4 24 | max_agg_neighbours: 4 25 | neigh_sample: true 26 | initializer: 27 | regexes: 28 | - - ^decoder.layers.*.layer.weight* 29 | - orthogonal 30 | - - ^decoder.layers.*.layer.bias 31 | - zero 32 | data_loader: 33 | batch_size: 64 34 | shuffle: false 35 | batches_per_epoch: 10000 36 | validation_data_loader: 37 | batch_size: 64 38 | trainer: 39 | type: apex_gradient_descent 40 | use_amp: false 41 | apex_opt_level: O1 42 | keep_batchnorm_fp32: None 43 | optimizer: 44 | type: adamw 45 | lr: 0.0001 46 | weight_decay: 0.0001 47 | parameter_groups: 48 | - - - ^decoder.in_proj 49 | - {} 50 | - - - ^decoder.layers.0 51 | - {} 52 | - - - ^decoder.layers.1 53 | - {} 54 | - - - ^decoder.layers.2 55 | - {} 56 | - - - ^decoder.layers.3 57 | - {} 58 | - - - ^decoder.layers.4 59 | - {} 60 | - - - ^decoder.layers.5 61 | - {} 62 | - - - ^decoder.layers.6 63 | - {} 64 | - - - ^decoder.layers.7 65 | - {} 66 | - - - ^decoder.out_f 67 | - {} 68 | - - - ^conv 69 | - {} 70 | - - - ^fc 71 | - {} 72 | learning_rate_scheduler: 73 | type: linear_with_warmup 74 | warmup_steps: 5000 75 | last_epoch: -1 76 | num_epochs: 10 77 | cuda_device: 0 78 | grad_norm: 0.1 79 | patience: 10 80 | validation_metric: "-loss" 81 | tensorboard_writer: 82 | summary_interval: 100 83 | should_log_parameter_statistics: false 84 | -------------------------------------------------------------------------------- /expt/ablation_studies/vevo_static/19_radflow_hp/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | data_path: ./data/vevo/vevo_static.hdf5 15 | key2pos_path: ./data/vevo/vevo_static.key2pos.pkl 16 | peek: true 17 | num_layers: 8 18 | hidden_size: 116 19 | dropout: 0.1 20 | forecast_length: 7 21 | backcast_length: 42 22 | test_lengths: [7] 23 | max_neighbours: 4 24 | max_agg_neighbours: 4 25 | neigh_sample: true 26 | variant: hp 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/ablation_studies/vevo_static/20_radflow_hpq/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/vevo/vevo_static_connected_nodes.pkl 5 | test_path: data/vevo/vevo_static_connected_nodes.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | agg_type: attention 14 | data_path: ./data/vevo/vevo_static.hdf5 15 | key2pos_path: ./data/vevo/vevo_static.key2pos.pkl 16 | peek: true 17 | num_layers: 8 18 | hidden_size: 104 19 | dropout: 0.1 20 | forecast_length: 7 21 | backcast_length: 42 22 | test_lengths: [7] 23 | max_neighbours: 4 24 | max_agg_neighbours: 4 25 | neigh_sample: true 26 | variant: hpq 27 | initializer: 28 | regexes: 29 | - - ^decoder.layers.*.layer.weight* 30 | - orthogonal 31 | - - ^decoder.layers.*.layer.bias 32 | - zero 33 | data_loader: 34 | batch_size: 64 35 | shuffle: false 36 | batches_per_epoch: 10000 37 | validation_data_loader: 38 | batch_size: 64 39 | trainer: 40 | type: apex_gradient_descent 41 | use_amp: false 42 | apex_opt_level: O1 43 | keep_batchnorm_fp32: None 44 | optimizer: 45 | type: adamw 46 | lr: 0.0001 47 | weight_decay: 0.0001 48 | parameter_groups: 49 | - - - ^decoder.in_proj 50 | - {} 51 | - - - ^decoder.layers.0 52 | - {} 53 | - - - ^decoder.layers.1 54 | - {} 55 | - - - ^decoder.layers.2 56 | - {} 57 | - - - ^decoder.layers.3 58 | - {} 59 | - - - ^decoder.layers.4 60 | - {} 61 | - - - ^decoder.layers.5 62 | - {} 63 | - - - ^decoder.layers.6 64 | - {} 65 | - - - ^decoder.layers.7 66 | - {} 67 | - - - ^decoder.out_f 68 | - {} 69 | - - - ^attn 70 | - {} 71 | - - - ^fc 72 | - {} 73 | learning_rate_scheduler: 74 | type: linear_with_warmup 75 | warmup_steps: 5000 76 | last_epoch: -1 77 | num_epochs: 10 78 | cuda_device: 0 79 | grad_norm: 0.1 80 | patience: 10 81 | validation_metric: "-loss" 82 | tensorboard_writer: 83 | summary_interval: 100 84 | should_log_parameter_statistics: false 85 | -------------------------------------------------------------------------------- /expt/missing_information/edges/wiki/no_hops/00/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | series_len: 1827 17 | agg_type: none 18 | num_layers: 8 19 | hidden_size: 128 20 | dropout: 0.1 21 | forecast_length: 28 22 | backcast_length: 112 23 | test_lengths: [7, 14, 21, 28] 24 | peek: false 25 | max_neighbours: 4 26 | edge_missing_p: 0 27 | view_randomize_p: false 28 | forward_fill: true 29 | variant: none 30 | initializer: 31 | regexes: 32 | - - ^decoder.layers.*.layer.weight* 33 | - orthogonal 34 | - - ^decoder.layers.*.layer.bias 35 | - zero 36 | data_loader: 37 | batch_size: 64 38 | shuffle: false 39 | batches_per_epoch: 10000 40 | validation_data_loader: 41 | batch_size: 64 42 | trainer: 43 | type: apex_gradient_descent 44 | use_amp: false 45 | apex_opt_level: O1 46 | keep_batchnorm_fp32: None 47 | optimizer: 48 | type: adamw 49 | lr: 0.0001 50 | weight_decay: 0.0001 51 | parameter_groups: 52 | - - - ^decoder.in_proj 53 | - {} 54 | - - - ^decoder.layers.0 55 | - {} 56 | - - - ^decoder.layers.1 57 | - {} 58 | - - - ^decoder.layers.2 59 | - {} 60 | - - - ^decoder.layers.3 61 | - {} 62 | - - - ^decoder.layers.4 63 | - {} 64 | - - - ^decoder.layers.5 65 | - {} 66 | - - - ^decoder.layers.6 67 | - {} 68 | - - - ^decoder.layers.7 69 | - {} 70 | - - - ^decoder.out_f 71 | - {} 72 | learning_rate_scheduler: 73 | type: linear_with_warmup 74 | warmup_steps: 5000 75 | last_epoch: -1 76 | num_epochs: 10 77 | cuda_device: 0 78 | grad_norm: 0.1 79 | patience: 10 80 | validation_metric: "-loss" 81 | tensorboard_writer: 82 | summary_interval: 100 83 | should_log_parameter_statistics: false 84 | -------------------------------------------------------------------------------- /expt/missing_information/edges/wiki/no_hops/20/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | series_len: 1827 17 | agg_type: none 18 | num_layers: 8 19 | hidden_size: 128 20 | dropout: 0.1 21 | forecast_length: 28 22 | backcast_length: 112 23 | test_lengths: [7, 14, 21, 28] 24 | peek: false 25 | max_neighbours: 4 26 | edge_missing_p: 0.2 27 | view_randomize_p: false 28 | forward_fill: true 29 | variant: none 30 | initializer: 31 | regexes: 32 | - - ^decoder.layers.*.layer.weight* 33 | - orthogonal 34 | - - ^decoder.layers.*.layer.bias 35 | - zero 36 | data_loader: 37 | batch_size: 64 38 | shuffle: false 39 | batches_per_epoch: 10000 40 | validation_data_loader: 41 | batch_size: 64 42 | trainer: 43 | type: apex_gradient_descent 44 | use_amp: false 45 | apex_opt_level: O1 46 | keep_batchnorm_fp32: None 47 | optimizer: 48 | type: adamw 49 | lr: 0.0001 50 | weight_decay: 0.0001 51 | parameter_groups: 52 | - - - ^decoder.in_proj 53 | - {} 54 | - - - ^decoder.layers.0 55 | - {} 56 | - - - ^decoder.layers.1 57 | - {} 58 | - - - ^decoder.layers.2 59 | - {} 60 | - - - ^decoder.layers.3 61 | - {} 62 | - - - ^decoder.layers.4 63 | - {} 64 | - - - ^decoder.layers.5 65 | - {} 66 | - - - ^decoder.layers.6 67 | - {} 68 | - - - ^decoder.layers.7 69 | - {} 70 | - - - ^decoder.out_f 71 | - {} 72 | learning_rate_scheduler: 73 | type: linear_with_warmup 74 | warmup_steps: 5000 75 | last_epoch: -1 76 | num_epochs: 10 77 | cuda_device: 0 78 | grad_norm: 0.1 79 | patience: 10 80 | validation_metric: "-loss" 81 | tensorboard_writer: 82 | summary_interval: 100 83 | should_log_parameter_statistics: false 84 | -------------------------------------------------------------------------------- /expt/missing_information/edges/wiki/no_hops/40/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | series_len: 1827 17 | agg_type: none 18 | num_layers: 8 19 | hidden_size: 128 20 | dropout: 0.1 21 | forecast_length: 28 22 | backcast_length: 112 23 | test_lengths: [7, 14, 21, 28] 24 | peek: false 25 | max_neighbours: 4 26 | edge_missing_p: 0.4 27 | view_randomize_p: false 28 | forward_fill: true 29 | variant: none 30 | initializer: 31 | regexes: 32 | - - ^decoder.layers.*.layer.weight* 33 | - orthogonal 34 | - - ^decoder.layers.*.layer.bias 35 | - zero 36 | data_loader: 37 | batch_size: 64 38 | shuffle: false 39 | batches_per_epoch: 10000 40 | validation_data_loader: 41 | batch_size: 64 42 | trainer: 43 | type: apex_gradient_descent 44 | use_amp: false 45 | apex_opt_level: O1 46 | keep_batchnorm_fp32: None 47 | optimizer: 48 | type: adamw 49 | lr: 0.0001 50 | weight_decay: 0.0001 51 | parameter_groups: 52 | - - - ^decoder.in_proj 53 | - {} 54 | - - - ^decoder.layers.0 55 | - {} 56 | - - - ^decoder.layers.1 57 | - {} 58 | - - - ^decoder.layers.2 59 | - {} 60 | - - - ^decoder.layers.3 61 | - {} 62 | - - - ^decoder.layers.4 63 | - {} 64 | - - - ^decoder.layers.5 65 | - {} 66 | - - - ^decoder.layers.6 67 | - {} 68 | - - - ^decoder.layers.7 69 | - {} 70 | - - - ^decoder.out_f 71 | - {} 72 | learning_rate_scheduler: 73 | type: linear_with_warmup 74 | warmup_steps: 5000 75 | last_epoch: -1 76 | num_epochs: 10 77 | cuda_device: 0 78 | grad_norm: 0.1 79 | patience: 10 80 | validation_metric: "-loss" 81 | tensorboard_writer: 82 | summary_interval: 100 83 | should_log_parameter_statistics: false 84 | -------------------------------------------------------------------------------- /expt/missing_information/edges/wiki/no_hops/60/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | series_len: 1827 17 | agg_type: none 18 | num_layers: 8 19 | hidden_size: 128 20 | dropout: 0.1 21 | forecast_length: 28 22 | backcast_length: 112 23 | test_lengths: [7, 14, 21, 28] 24 | peek: false 25 | max_neighbours: 4 26 | edge_missing_p: 0.6 27 | view_randomize_p: false 28 | forward_fill: true 29 | variant: none 30 | initializer: 31 | regexes: 32 | - - ^decoder.layers.*.layer.weight* 33 | - orthogonal 34 | - - ^decoder.layers.*.layer.bias 35 | - zero 36 | data_loader: 37 | batch_size: 64 38 | shuffle: false 39 | batches_per_epoch: 10000 40 | validation_data_loader: 41 | batch_size: 64 42 | trainer: 43 | type: apex_gradient_descent 44 | use_amp: false 45 | apex_opt_level: O1 46 | keep_batchnorm_fp32: None 47 | optimizer: 48 | type: adamw 49 | lr: 0.0001 50 | weight_decay: 0.0001 51 | parameter_groups: 52 | - - - ^decoder.in_proj 53 | - {} 54 | - - - ^decoder.layers.0 55 | - {} 56 | - - - ^decoder.layers.1 57 | - {} 58 | - - - ^decoder.layers.2 59 | - {} 60 | - - - ^decoder.layers.3 61 | - {} 62 | - - - ^decoder.layers.4 63 | - {} 64 | - - - ^decoder.layers.5 65 | - {} 66 | - - - ^decoder.layers.6 67 | - {} 68 | - - - ^decoder.layers.7 69 | - {} 70 | - - - ^decoder.out_f 71 | - {} 72 | learning_rate_scheduler: 73 | type: linear_with_warmup 74 | warmup_steps: 5000 75 | last_epoch: -1 76 | num_epochs: 10 77 | cuda_device: 0 78 | grad_norm: 0.1 79 | patience: 10 80 | validation_metric: "-loss" 81 | tensorboard_writer: 82 | summary_interval: 100 83 | should_log_parameter_statistics: false 84 | -------------------------------------------------------------------------------- /expt/missing_information/edges/wiki/no_hops/80/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | series_len: 1827 17 | agg_type: none 18 | num_layers: 8 19 | hidden_size: 128 20 | dropout: 0.1 21 | forecast_length: 28 22 | backcast_length: 112 23 | test_lengths: [7, 14, 21, 28] 24 | peek: false 25 | max_neighbours: 4 26 | edge_missing_p: 0.8 27 | view_randomize_p: false 28 | forward_fill: true 29 | variant: none 30 | initializer: 31 | regexes: 32 | - - ^decoder.layers.*.layer.weight* 33 | - orthogonal 34 | - - ^decoder.layers.*.layer.bias 35 | - zero 36 | data_loader: 37 | batch_size: 64 38 | shuffle: false 39 | batches_per_epoch: 10000 40 | validation_data_loader: 41 | batch_size: 64 42 | trainer: 43 | type: apex_gradient_descent 44 | use_amp: false 45 | apex_opt_level: O1 46 | keep_batchnorm_fp32: None 47 | optimizer: 48 | type: adamw 49 | lr: 0.0001 50 | weight_decay: 0.0001 51 | parameter_groups: 52 | - - - ^decoder.in_proj 53 | - {} 54 | - - - ^decoder.layers.0 55 | - {} 56 | - - - ^decoder.layers.1 57 | - {} 58 | - - - ^decoder.layers.2 59 | - {} 60 | - - - ^decoder.layers.3 61 | - {} 62 | - - - ^decoder.layers.4 63 | - {} 64 | - - - ^decoder.layers.5 65 | - {} 66 | - - - ^decoder.layers.6 67 | - {} 68 | - - - ^decoder.layers.7 69 | - {} 70 | - - - ^decoder.out_f 71 | - {} 72 | learning_rate_scheduler: 73 | type: linear_with_warmup 74 | warmup_steps: 5000 75 | last_epoch: -1 76 | num_epochs: 10 77 | cuda_device: 0 78 | grad_norm: 0.1 79 | patience: 10 80 | validation_metric: "-loss" 81 | tensorboard_writer: 82 | summary_interval: 100 83 | should_log_parameter_statistics: false 84 | -------------------------------------------------------------------------------- /expt/missing_information/views/wiki/no_hops/00/config.yaml: -------------------------------------------------------------------------------- 1 | # Number of trainable parameters: 2 | dataset_reader: 3 | type: network 4 | train_path: data/wiki/node_ids/train_ids.pkl 5 | test_path: data/wiki/node_ids/test_ids.pkl 6 | train_data_path: train 7 | validation_data_path: valid 8 | test_data_path: test 9 | vocabulary: 10 | type: empty 11 | model: 12 | type: radflow 13 | data_path: ./data/wiki/wiki.hdf5 14 | key2pos_path: ./data/wiki/key2pos.pkl 15 | test_keys_path: ./data/wiki/node_ids/test_ids.pkl 16 | series_len: 1827 17 | agg_type: none 18 | num_layers: 8 19 | hidden_size: 128 20 | dropout: 0.1 21 | forecast_length: 28 22 | backcast_length: 112 23 | test_lengths: [7, 14, 21, 28] 24 | peek: false 25 | max_neighbours: 4 26 | view_missing_p: 0 27 | view_randomize_p: false 28 | forward_fill: true 29 | variant: none 30 | initializer: 31 | regexes: 32 | - - ^decoder.layers.*.layer.weight* 33 | - orthogonal 34 | - - ^decoder.layers.*.layer.bias 35 | - zero 36 | data_loader: 37 | batch_size: 64 38 | shuffle: false 39 | batches_per_epoch: 10000 40 | validation_data_loader: 41 | batch_size: 64 42 | trainer: 43 | type: apex_gradient_descent 44 | use_amp: false 45 | apex_opt_level: O1 46 | keep_batchnorm_fp32: None 47 | optimizer: 48 | type: adamw 49 | lr: 0.0001 50 | weight_decay: 0.0001 51 | parameter_groups: 52 | - - - ^decoder.in_proj 53 | - {} 54 | - - - ^decoder.layers.0 55 | - {} 56 | - - - ^decoder.layers.1 57 | - {} 58 | - - - ^decoder.layers.2 59 | - {} 60 | - - - ^decoder.layers.3 61 | - {} 62 | - - - ^decoder.layers.4 63 | - {} 64 | - - - ^decoder.layers.5 65 | - {} 66 | - - - ^decoder.layers.6 67 | - {} 68 | - - - ^decoder.layers.7 69 | - {} 70 | - - - ^decoder.out_f 71 | - {} 72 | learning_rate_scheduler: 73 | type: linear_with_warmup 74 | warmup_steps: 5000 75 | last_epoch: -1 76 | num_epochs: 10 77 | cuda_device: 0 78 | grad_norm: 0.1 79 | patience: 10 80 | validation_metric: "-loss" 81 | tensorboard_writer: 82 | summary_interval: 100 83 | should_log_parameter_statistics: false 84 | --------------------------------------------------------------------------------