36 {
37 heat_map_a_ = dfmb_psroi_align_parameter.heat_map_a();
38 output_channel_ = dfmb_psroi_align_parameter.output_dim();
39 group_height_ = dfmb_psroi_align_parameter.group_height();
40 group_width_ = dfmb_psroi_align_parameter.group_width();
41 pooled_height_ = dfmb_psroi_align_parameter.pooled_height();
42 pooled_width_ = dfmb_psroi_align_parameter.pooled_width();
43 pad_ratio_ = dfmb_psroi_align_parameter.pad_ratio();
44 sample_per_part_ = dfmb_psroi_align_parameter.sample_per_part();
45
46 trans_std_ = dfmb_psroi_align_parameter.trans_std();
47 part_height_ = dfmb_psroi_align_parameter.part_height();
48 part_width_ = dfmb_psroi_align_parameter.part_width();
49 heat_map_b_ = dfmb_psroi_align_parameter.heat_map_b();
50 no_trans_ = (nbInputs < 3);
51 num_classes_ = no_trans_ ? 1 : in_dims[2].
d[1];
52
53 CHECK_GT(heat_map_a_, 0);
54 CHECK_GE(heat_map_b_, 0);
55 CHECK_GE(pad_ratio_, 0);
56 CHECK_GT(output_channel_, 0);
57 CHECK_GT(sample_per_part_, 0);
58 CHECK_GT(group_height_, 0);
59 CHECK_GT(group_width_, 0);
60 CHECK_GT(pooled_height_, 0);
61 CHECK_GT(pooled_width_, 0);
62 CHECK_GE(part_height_, 0);
63 CHECK_GE(part_width_, 0);
64
65 channels_ = in_dims[0].
d[0];
66 height_ = in_dims[0].
d[1];
67 width_ = in_dims[0].
d[2];
68 output_dims_ =
69 Dims4(in_dims[1].d[0], output_channel_, pooled_height_, pooled_width_);
70 output_size_ =
71 in_dims[1].
d[0] * output_channel_ * pooled_height_ * pooled_width_;
72
73 CHECK_EQ(channels_, output_channel_ * group_height_ * group_width_);
74 CHECK_EQ(in_dims[1].d[1], 5);
75 if (!no_trans_) {
76 CHECK_EQ(in_dims[2].d[1] % 2, 0);
77 int num_classes = in_dims[2].
d[1] / 2;
78 CHECK_EQ(output_channel_ % num_classes, 0);
79 CHECK_EQ(part_height_, in_dims[2].d[2]);
80 CHECK_EQ(part_width_, in_dims[2].d[3]);
81 }
82 }