예제 #1
0
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
예제 #2
0
 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))
예제 #3
0
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()
예제 #4
0
 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))
예제 #5
0
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