Only tested on Mac El Captain OS Python 3
To run, you will need the following:
- Python3
- GPy
- Numpy
- Matpolotlib
- Scipy
And if you would like to run on a GPU pycuda *Note: Only works with RBF (SE) Kernels. Functionality may be disabled
Note2: The comments in the code may not be up-to-date with what is actually happening in the script. Will clear up later.
To add more kernels from the GPy framework, go to dataprocessing.py , edit kernel_list add additional kernels to this list or remove them>
Note:
- If using an IDE with tab completion typing Gpy.kern.<press_tab> will show all available kernels
- I've only tested with RBF, StdPeriodic, Matern32, Matern52 and MLP.
- Some kernels may not work with the current framework as is, as some kernels do not have a lengthscale.
To add more datasets, first add your desired dataset to the outer data folder:
-
Then go to either importdata.py or import2d.py (if using 2D starting input) and add an "else if option == <you_define_an_option_name> and add the following:
- data = <import_YOUR_data_function>
- data = data[:,None] % transposes data to a column array
- size_data = size_data(data.shape[0])
- time = np.linspace(0,1,size_data)
-
For import2d.py add something like this:
- elif option == 'stock2d':
- stock_no = 13
- data,input2 = sd.get_stock(stock_no,if_2d = True)
- data = data[0:1000][:,None]
- size_data = data.shape[0]
- inputs1 = np.linspace(0,1,size_data)
- inputs2 = input2[0:1000][:,None]
- inputs = np.column_stack((inputs1,inputs2))
-
Go to main.py or mainNd.py and add to the Options list the name that you defined.
-
Typically all observed inputs are times, where times is a linearly spaced array between [0,1] and is spaced depending on the size of your data set.
-
All things are put into to column vector form so that they can be used throughout the script
To run:
- Go to main.py or mainNd.py
- Go to the main function at the bottom of the script
- Edit how many runs you want (no of layers) , the split of your training to test data and edit the options[<insert_Option_list_number>] and Models[<insert_0_or_1>] depending on whehther you want the augmented or single input model
The scrip automatically generates plots for each layer and saves them in ../Plots/<choosen_model>/ it also saves all data that has been gathered and save .csv files for each layer ../Data/<choosen_model>/data_layer_/<choosen_option>