GenerateSplit

GenerateSplit(split_fit,device_fit,net_fit,lr_fit,momentum_fit,weight_decay_fit,train_x,train_y, batch,init_weights)

Description: Generation of data splitting subsets.

Parameters:

  • split_fit : int, the number of splits (= the number of hidden layer)

  • device_fit : char, device to use, “cpu” or “cuda”

  • net_fit : chosen network structure

  • lr_fit : float, learning rate

  • momentum_fit : float, momentum

  • weight_decay_fit : float, penalty parameter

  • train_x : DataFrame, predictors

  • train_y : Series, responses

  • batch : int, batch size

  • init_weights : function, initialization method

Returns:

  • train_loaderset : list, shape = (split_fit x split_fit), training dataloader set, there are L orders, each order contains L subsamples

  • netset : list, shape = (split_fit), network set, each network is specific to one order

  • optimizerset : list, shape = (split_fit x split_fit), chosen optimizer set, each optimizer is specific to one subsamples of one order

Example:

 1from Multi_Layer_Kernel_Machine.Structure import KernelNet
 2from Multi_Layer_Kernel_Machine.GenerateSplit import GenerateSplit
 3def init_weights(m):
 4   if type(m) == nn.Conv2d:
 5      torch.nn.init.normal_(m.weight,mean=0,std=0.5)
 6   if type(m) == nn.Linear:
 7      torch.nn.init.uniform_(m.weight,a=0,b=1)
 8      m.bias.data.fill_(0.01)
 9device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
10net = KernelNet([90,32,8,1],["C","G"],[0.01,0.1],device)
11## Generate Subsamples
12train_loaderset,netset,optimizerset=GenerateSplit(2,device,net,8e-4,0.9,1e-4,train_x,train_y, batch,init_weights)