Awesome Open Source
Awesome Open Source

Kaggle Web Traffic Time Series Forecasting

1st place solution


Main files:

  • - builds features from source data
  • - TF data preprocessing pipeline (assembles features into training/evaluation tensors, performs some sampling and normalisation)
  • - the model
  • - trains the model(s)
  • - hyperpatameter sets.
  • submission-final.ipynb - generates predictions for submission

How to reproduce competition results:

  1. Download input files from :,, put them into data directory.
  2. Run python data/vars --add_days=63. It will extract data and features from the input files and put them into data/vars as Tensorflow checkpoint.
  3. Run trainer: python --name s32 --hparam_set=s32 --n_models=3 --name s32 --no_eval --no_forward_split --asgd_decay=0.99 --max_steps=11500 --save_from_step=10500. This command will simultaneously train 3 models on different seeds (on a single TF graph) and save 10 checkpoints from step 10500 to step 11500 to data/cpt. Note: training requires GPU, because of cuDNN usage. CPU training will not work. If you have 3 or more GPUs, add --multi_gpu flag to speed up the training. One can also try different hyperparameter sets (described in --hparam_set=definc, --hparam_set=inst81, etc. Don't be afraid of displayed NaN losses during training. This is normal, because we do the training in a blind mode, without any evaluation of model performance.
  4. Run submission-final.ipynb in a standard jupyter notebook environment, execute all cells. Prediction will take some time, because it have to load and evaluate 30 different model weights. At the end, you'll get submission.csv.gz file in data directory.

See also detailed model description

Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Jupyter Notebook (163,553
Tensorflow (22,608
Kaggle (4,419
Recurrent Neural Networks (4,378
Time Series (4,222
Sequence To Sequence (1,353
Cudnn (951
Rnn Encoder Decoder (28