def _split_repeated_holdout(self, split_ratio, is_stratified_sampling=True, idx=[]): assert(self.train_or_test in ['train','sample']) # split by t/v if is_stratified_sampling: labels_num = len(set(idx)) labels_index = [[] for _ in range(labels_num)] for index, label in enumerate(idx): labels_index[label].append(index) train_idx = [[] for _ in range(labels_num)] validation_idx = [[] for _ in range(labels_num)] for label in range(labels_num): label_samples = labels_index[label] get_rng().shuffle(label_samples) top_k = int(split_ratio * len(label_samples)) train_idx[label].extend(label_samples[0:top_k]) validation_idx[label].extend((label_samples[top_k:])) train_idx = reduce(lambda x, y: x+y, train_idx) validation_idx = reduce(lambda x, y: x+y, validation_idx) return train_idx, validation_idx else: index = range(len(idx)) get_rng().shuffle(index) top_k = int(split_ratio * len(idx)) train_idx = index[0:top_k] validation_idx = (index[top_k:]) return train_idx, validation_idx
def __init__(self, inputs): super(RandomMixData, self).__init__(name=None, action=None, inputs=inputs) self.rng = get_rng(self) self.input_list_flag = np.ones((len(self._positional_inputs)), dtype=np.uint8)
def __init__(self, inputs, propabilitys): super(RandomChooseData, self).__init__(name=None, action=None, inputs=inputs) self.input_list = [] self.input_list.extend([i for i in self._positional_inputs]) self.propability_list = tuple(propabilitys) self.rng = get_rng(self)
def __init__(self, inputs, capacity=100, samples_per_class=1, classes=[]): super(Episode, self).__init__(name=None, action=None, inputs=inputs) self.samples_per_class = samples_per_class self.classes = classes self.capacity = capacity self.consume_num = 0 self.episode_train = _TransparantNode(upper_node=Node.inputs(self), name='episode-train', active_request=False) self.is_episode_ok = False self.episode_classes_map = {c: i for i, c in enumerate(self.classes)} self.rng = get_rng(self)
def _split_bootstrap(self, idx): assert(self.train_or_test in ['train','sample']) is_ok = False train_idx = [] validation_idx = [] while not is_ok: selected_idx = get_rng().randint(low=0, high=len(idx)-1, size=len(idx)).tolist() train_idx = selected_idx validation_idx = [i for i in range(len(idx)) if i not in selected_idx] if len(validation_idx) > 0: is_ok = True return train_idx, validation_idx
def __init__(self, inputs=None, horiz=True, vert=False, prob=0.5): super(Flip, self).__init__(name=None, action=self.action, inputs=inputs) """ Only one of horiz, vert can be set. :param horiz: whether or not apply horizontal flip. :param vert: whether or not apply vertical flip. :param prob: probability of flip. """ if horiz and vert: raise ValueError("Please use two Flip instead.") elif horiz: self.code = 1 elif vert: self.code = 0 else: raise ValueError("Are you kidding?") self.prob = prob self.rng = get_rng(self)
def rng(self): if self._is_data_rng: self.data_rng = get_rng(self) return self.data_rng
def __init__(self, inputs=None, sigma=10): super(DisturbNoise, self).__init__(name=None, action=self.action, inputs=inputs) self._sigma = sigma self.rng = get_rng(self)
def __init__(self, inputs=None, max_lighting=10): super(DisturbLighting, self).__init__(name=None, action=self.action, inputs=inputs) self._max_lighting = max_lighting self.rng = get_rng(self)
def __init__(self, inputs=None, max_deg=10): super(DisturbRotation, self).__init__(name=None, action=self.action, inputs=inputs) self._max_deg = max_deg self.rng = get_rng(self)