GithubHelp home page GithubHelp logo

akintsakis / cudawnntimeseriesforecasting Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 2.0 67 KB

A Local Linear Wavelet Neural Network trained by Particle Swarm Optimization implemented in CUDA for times series forecasting.

License: Apache License 2.0

Cuda 99.64% MATLAB 0.36%

cudawnntimeseriesforecasting's Introduction

cudaWnnTimeSeriesForecasting

A Local Linear Wavelet Neural Network trained by Particle Swarm Optimization implemented in CUDA for times series forecasting.

Athanassios Kintsakis [email protected] [email protected]

The implementation of the current system in cuda and the improvements in the PSO training algorithm can be found in http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=7216611&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D7216611

Should you find the system useful, please cite the above work.

Implementation Details

Please check the defined parameters at the top of the .cu file, they directly affect shared memory. Be sure to remain within the limits of your GPU architecture.

Compile and Run

Compile with nvcc. You can experiment with the example input datasets. To run, you need to provide only one argument, the name of the input file that must be located within the same folder with the executable. For example, in windows to compile and run you can use

The following compile archs have been tested:

  • nvcc -gencode arch=compute_35,code=sm_35 cudaWnnTimeSeriesForecasting.cu
  • nvcc -gencode arch=compute_61,code=sm_61 cudaWnnTimeSeriesForecasting.cu

To run:

  • a.out <num_of_pso_iterations> <input_file> Example
  • ./a.out 3000 sample_input4_greek_energy_market_load.txt

you can replace the input file with any other valid input file, either from the included samples or your own. Please follow the format of the included samples.

How to configure for maximum accuracy

The values of the inputs, size of training set and how many values forward to forecast depend on the actual input data. Below are some values that seem to yield acceptable forecasts with the sample datasets (for all examples below we assume that threadnum is set to 256). The off value is how many values forward to predict, a value of 0 is for 1 value forward, a value of 23 is for 24 values forward etc. This parameter is to be set according to the user requirements. Generally, the higher the value, the less the expected accuracy.

sample_input1_sinusoidal_plateau.txt
define inputs 8
define hidd_neurons 2
define hours_each 4
define off 5

sample_input2_sinusoidal_plateau_random.txt
define inputs 8
define hidd_neurons 2
define hours_each 4
define off 5

sample_input3_mckey_glass.txt
define inputs 8
define hidd_neurons 2
define hours_each 4
define off 5

sample_input4_greek_energy_market_load.txt
define inputs 24
define hidd_neurons 2
define hours_each 4
define off 5

cudawnntimeseriesforecasting's People

Contributors

akintsakis avatar

Stargazers

Jane Z. avatar  avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.