def stack_lstm_default_state(batch_size, hidden_size, num_layers, bidirectional): """init default input.""" num_directions = 2 if bidirectional else 1 h_list = c_list = [] for _ in range(num_layers): h_list.append(ts.zeros((num_directions, batch_size, hidden_size))) c_list.append(ts.zeros((num_directions, batch_size, hidden_size))) h, c = tuple(h_list), tuple(c_list) return h, c
def _initialize_weights(self): self.init_parameters_data() for _, m in self.cells_and_names(): if isinstance(m, layers.Conv2d): n = m.kernel_size[0] * m.kernel_size[1] * m.out_channels m.weight.set_data( Tensor( np.random.normal(0, np.sqrt( 2. / n), m.weight.data.shape).astype("float32"))) if m.bias is not None: m.bias.set_data(ts.zeros(m.bias.data.shape)) elif isinstance(m, layers.BatchNorm2d): m.gamma.set_data(ts.ones(m.gamma.data.shape)) m.beta.set_data(ts.zeros(m.beta.data.shape))
def eval_process(args_opt, cityscapes_dir, result_dir): CS = CityScapes() hist_perframe = ts.zeros((CS.class_num, CS.class_num)).asnumpy() cityscapes = generate_image_list(cityscapes_dir) args_opt.dataset_size = len(cityscapes) reporter = GanReporter(args_opt) reporter.start_eval() for i, img_path in enumerate(cityscapes): if i % 100 == 0: reporter.info('Evaluating: %d/%d' % (i, len(cityscapes))) img_name = os.path.split(img_path)[1] ids1 = CS.get_id(os.path.join(cityscapes_dir, img_name)) ids2 = CS.get_id(os.path.join(result_dir, img_name)) hist_perframe += fast_hist(ids1.flatten(), ids2.flatten(), CS.class_num) mean_pixel_acc, mean_class_acc, mean_class_iou, per_class_acc, per_class_iou = get_scores( hist_perframe) reporter.info( "mean_pixel_acc:{}, mean_class_acc:{}, mean_class_iou: {}".format( mean_pixel_acc, mean_class_acc, mean_class_iou)) reporter.info("************ Per class numbers below ************") for i, cl in enumerate(CS.classes): while len(cl) < 15: cl = cl + ' ' reporter.info("{}: acc = {}, iou = {}".format(cl, per_class_acc[i], per_class_iou[i])) reporter.end_eval()
def _initialize_weights(self): self.init_parameters_data() for _, m in self.cells_and_names(): if isinstance(m, layers.Dense): m.weight.set_data( Tensor( np.random.normal( 0, 0.01, m.weight.data.shape).astype("float32"))) if m.bias is not None: m.bias.set_data(ts.zeros(m.bias.data.shape))
def lstm_default_state(batch_size, hidden_size, num_layers, bidirectional): """init default input.""" num_directions = 2 if bidirectional else 1 h = ts.zeros((num_layers * num_directions, batch_size, hidden_size)) c = ts.zeros((num_layers * num_directions, batch_size, hidden_size)) return h, c