def __init__(self, mNet, y_activ_regression, mBGsub, depth): n_leaves = 2**depth x_activ = mNet.activation_volume size_last_convolution = mNet.nb_activations H_ds, W_ds = x_activ.shape[2], x_activ.shape[3] batch_size = x_activ.shape[0] #get foreground/background proba p_fb = mBGsub.p_fb p_foreground = p_fb[:, 0, :, :].reshape((batch_size, 1, H_ds, W_ds)) #Decision Flat 2 layers #Decision tree self.params_regression = RegFcts.init_all_tree_params( depth, size_last_convolution) #[w_1,b_1] #defining all decision nodes, breadth first, storing all the probas tensors in a list tree_probas_list = RegFcts.create_tree_probas_list( x_activ, p_foreground, self.params_regression, depth, batch_size) # Put Output in the leaves p_leaves = [] for l in range(0, n_leaves): p_leaves.append(tree_probas_list[pow(2, depth) - 1 + l]) #Define objects self.p_leaves = p_leaves self.n_leaves = n_leaves self.size_last_convolution = size_last_convolution self.depth = depth
def get_random_regression_params(self): random_params_regression = RegFcts.random_FC3_params( self.size_last_convolution, self.n_leaves, hidden_0_size=300, hidden_1_size=80) return random_params_regression
def init_regression_params(self): self.params_regression = RegFcts.init_FC3_params( self.size_last_convolution, self.n_leaves, hidden_0_size=300, hidden_1_size=80) return self.params_regression
def __init__(self, mNet, y_activ_regression, mBGsub, n_leaves, p_drop=0.0): x_activ = mNet.activation_volume size_last_convolution = mNet.nb_activations H_ds, W_ds = x_activ.shape[2], x_activ.shape[3] batch_size = x_activ.shape[0] #get foreground/background proba p_fb = mBGsub.p_fb p_foreground = p_fb[:, 0, :, :].reshape((batch_size, 1, H_ds, W_ds)) #Decision Flat 2 hidden layers self.params_regression = RegFcts.init_FC3_params(size_last_convolution, n_leaves, hidden_0_size=300, hidden_1_size=80) p_fin = RegFcts.decision_node_flat3(x_activ, self.params_regression[0], self.params_regression[1], self.params_regression[2], self.params_regression[3], self.params_regression[4], self.params_regression[5], batch_size, p_drop=p_drop) p_fin = p_fin * T.repeat(p_foreground, n_leaves, axis=1) # Put Output in the leaves p_leaves = [] for l in range(0, n_leaves): p_leaves.append(p_fin[:, l:l + 1, :, :]) #Define objects self.p_leaves = p_leaves self.n_leaves = n_leaves self.size_last_convolution = size_last_convolution
def init_regression_params(self): self.params_regression = RegFcts.init_FC_params( self.size_last_convolution, self.n_leaves) return self.params_regression
def init_regression_params(self): self.params_regression = RegFcts.init_all_tree_params( self.depth, self.size_last_convolution) return self.params_regression