├── 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 |
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 |
--------------------------------------------------------------------------------