切换回主目录 cpop


In [1]:
cd ..

读取数据并进行剪裁


In [2]:
clc; clear all; close all;
addpath(genpath(pwd));
zones_Prec = get_zones_Prec_weekly();
OISST      = dlmread('data/OISST_19811101-20161116.dat');
uwnd       = dlmread('data/uwnd_WIND_CCMP_merge_OISST_weekly.dat');
vwnd       = dlmread('data/vwnd_WIND_CCMP_merge_OISST_weekly.dat');

% Intercept SST to make them time consistent
OISST = OISST(1:size(zones_Prec, 1), :);
uwnd  = uwnd(1:size(zones_Prec, 1), :);
vwnd  = vwnd(1:size(zones_Prec, 1), :);

In [3]:
whos


Name               Size                   Bytes  Class     Attributes

  OISST           1688x20800            280883200  double              
  uwnd            1688x20800            280883200  double              
  vwnd            1688x20800            280883200  double              
  zones_Prec      1688x9                   121536  double

准备好需要的数据形式,这里忽略了空间信息


In [4]:
x_train = [OISST uwnd vwnd];
y_train = zones_Prec;

使用TNDD对数据进行训练,训练的结果进行储存

这次训练仅仅对次数进行重复,这会消耗一定的时间


In [ ]:
% idx   hiddenLayerSize delay_weeks trainPerformance    valPerformance  testPerformance performance trainR  valR    testR   R   region1 region2 region3 region4 region5 region6 region7 region8 region9
% result = tdnn_train(X, Y, delay_times, hiddenLayerSize)
result = [];
for idx = 1:50
    result_one = tdnn_train(x_train, y_train, 6, 100)
    result = [result; result_one];
    disp(result_one)
end
dlmwrite('result/20161216_2_result_repeat_50_delay_6_hid_100.dat', result, 'delimiter', '\t');

In [22]:
clear i idx
whos


Name               Size                   Bytes  Class     Attributes

  OISST           1688x20800            280883200  double              
  result            50x20                    8000  double              
  result_one         1x20                     160  double              
  uwnd            1688x20800            280883200  double              
  vwnd            1688x20800            280883200  double              
  x                  1x13                     104  double              
  x_train         1688x62400            842649600  double              
  y_train         1688x9                   121536  double              
  zones_Prec      1688x9                   121536  double

对不同的hiddenLayerSize进行确定


In [ ]:
% idx   hiddenLayerSize delay_weeks trainPerformance    valPerformance  testPerformance performance trainR  valR    testR   R   region1 region2 region3 region4 region5 region6 region7 region8 region9
% result = tdnn_train(X, Y, delay_times, hiddenLayerSize)
result = [];
x = 2:0.5:8;
x = 3.^x;
for i = 1:5
    for idx = x
        result_one = tdnn_train(x_train, y_train, 6, floor(idx))
        result = [result; result_one];
    end
end
dlmwrite('result/20161217_1_result_repeat_5_delay_6_hid_range.dat', result, 'delimiter', '\t');

In [ ]: