Python mxnet.nd.split() Examples
The following are 14
code examples of mxnet.nd.split().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
mxnet.nd
, or try the search function
.
Example #1
Source File: base_layers.py From STGCN with GNU General Public License v3.0 | 6 votes |
def forward(self, x): ''' Parameters ---------- x: nd.array, shape is (batch_size, c_in, time_step, num_of_vertices) Returns ---------- shape is (batch_size, c_out, time_step - Kt + 1, num_of_vertices) ''' x_input = self.align(x)[:, :, self.Kt - 1:, :] x_conv = self.conv(x) if self.activation == 'GLU': x_conv = self.conv(x) x_conv1, x_conv2 = nd.split(x_conv, axis=1, num_outputs=2) return (x_conv1 + x_input) * nd.sigmoid(x_conv2) if self.activation == 'relu': return nd.relu(x_conv + x_input) return x_conv
Example #2
Source File: coder.py From cascade_rcnn_gluon with Apache License 2.0 | 6 votes |
def forward(self, samples, matches, anchors, refs): """Forward""" F = nd # TODO(zhreshold): batch_pick, take multiple elements? ref_boxes = nd.repeat(refs.reshape((0, 1, -1, 4)), axis=1, repeats=matches.shape[1]) ref_boxes = nd.split(ref_boxes, axis=-1, num_outputs=4, squeeze_axis=True) ref_boxes = nd.concat(*[F.pick(ref_boxes[i], matches, axis=2).reshape((0, -1, 1)) \ for i in range(4)], dim=2) g = self.corner_to_center(ref_boxes) a = self.corner_to_center(anchors) t0 = ((g[0] - a[0]) / a[2] - self._means[0]) / self._stds[0] t1 = ((g[1] - a[1]) / a[3] - self._means[1]) / self._stds[1] t2 = (F.log(g[2] / a[2]) - self._means[2]) / self._stds[2] t3 = (F.log(g[3] / a[3]) - self._means[3]) / self._stds[3] codecs = F.concat(t0, t1, t2, t3, dim=2) temp = F.tile(samples.reshape((0, -1, 1)), reps=(1, 1, 4)) > 0.5 targets = F.where(temp, codecs, F.zeros_like(codecs)) masks = F.where(temp, F.ones_like(temp), F.zeros_like(temp)) return targets, masks
Example #3
Source File: coder.py From cascade_rcnn_gluon with Apache License 2.0 | 6 votes |
def hybrid_forward(self, F, x, anchors): if self.corner_to_center is not None: a = self.corner_to_center(anchors) else: a = anchors.split(axis=-1, num_outputs=4) p = F.split(x, axis=-1, num_outputs=4) ox = F.broadcast_add(F.broadcast_mul(p[0] * self._stds[0] + self._means[0], a[2]), a[0]) oy = F.broadcast_add(F.broadcast_mul(p[1] * self._stds[1] + self._means[1], a[3]), a[1]) tw = F.exp(p[2] * self._stds[2] + self._means[2]) th = F.exp(p[3] * self._stds[3] + self._means[2]) if self._clip: tw = F.minimum(tw, self._clip) th = F.minimum(th, self._clip) ow = F.broadcast_mul(tw, a[2]) / 2 oh = F.broadcast_mul(th, a[3]) / 2 return F.concat(ox - ow, oy - oh, ox + ow, oy + oh, dim=-1)
Example #4
Source File: learn_nms.py From kaggle-rsna18 with MIT License | 5 votes |
def extract_multi_position_matrix_nd(bbox): bbox = nd.transpose(bbox, axes=(1, 0, 2)) xmin, ymin, xmax, ymax = nd.split(data=bbox, num_outputs=4, axis=2) # [num_fg_classes, num_boxes, 1] bbox_width = xmax - xmin + 1. bbox_height = ymax - ymin + 1. center_x = 0.5 * (xmin + xmax) center_y = 0.5 * (ymin + ymax) # [num_fg_classes, num_boxes, num_boxes] delta_x = nd.broadcast_minus(lhs=center_x, rhs=nd.transpose(center_x, axes=(0, 2, 1))) delta_x = nd.broadcast_div(delta_x, bbox_width) delta_x = nd.log(nd.maximum(nd.abs(delta_x), 1e-3)) delta_y = nd.broadcast_minus(lhs=center_y, rhs=nd.transpose(center_y, axes=(0, 2, 1))) delta_y = nd.broadcast_div(delta_y, bbox_height) delta_y = nd.log(nd.maximum(nd.abs(delta_y), 1e-3)) delta_width = nd.broadcast_div(lhs=bbox_width, rhs=nd.transpose(bbox_width, axes=(0, 2, 1))) delta_width = nd.log(delta_width) delta_height = nd.broadcast_div(lhs=bbox_height, rhs=nd.transpose(bbox_height, axes=(0, 2, 1))) delta_height = nd.log(delta_height) concat_list = [delta_x, delta_y, delta_width, delta_height] for idx, sym in enumerate(concat_list): concat_list[idx] = nd.expand_dims(sym, axis=3) position_matrix = nd.concat(*concat_list, dim=3) return position_matrix
Example #5
Source File: cell.py From ST-MetaNet with MIT License | 5 votes |
def forward(self, feature, data, begin_state): num_nodes, batch_size, length, _ = data.shape data = nd.split(data, axis=2, num_outputs=length, squeeze_axis=1) outputs, state = [], begin_state for input in data: output, state = self.forward_single(feature, input, state) outputs.append(output) outputs = nd.stack(*outputs, axis=2) return outputs, state
Example #6
Source File: cell.py From ST-MetaNet with MIT License | 5 votes |
def forward(self, feature, data, begin_state): num_nodes, batch_size, length, _ = data.shape data = nd.split(data, axis=2, num_outputs=length, squeeze_axis=1) outputs, state = [], begin_state for input in data: output, state = self.forward_single(feature, input, state) outputs.append(output) outputs = nd.stack(*outputs, axis=2) return outputs, state
Example #7
Source File: learn_nms.py From Relation-Networks-for-Object-Detection with MIT License | 5 votes |
def extract_multi_position_matrix_nd(bbox): bbox = nd.transpose(bbox, axes=(1, 0, 2)) xmin, ymin, xmax, ymax = nd.split(data=bbox, num_outputs=4, axis=2) # [num_fg_classes, num_boxes, 1] bbox_width = xmax - xmin + 1. bbox_height = ymax - ymin + 1. center_x = 0.5 * (xmin + xmax) center_y = 0.5 * (ymin + ymax) # [num_fg_classes, num_boxes, num_boxes] delta_x = nd.broadcast_minus(lhs=center_x, rhs=nd.transpose(center_x, axes=(0, 2, 1))) delta_x = nd.broadcast_div(delta_x, bbox_width) delta_x = nd.log(nd.maximum(nd.abs(delta_x), 1e-3)) delta_y = nd.broadcast_minus(lhs=center_y, rhs=nd.transpose(center_y, axes=(0, 2, 1))) delta_y = nd.broadcast_div(delta_y, bbox_height) delta_y = nd.log(nd.maximum(nd.abs(delta_y), 1e-3)) delta_width = nd.broadcast_div(lhs=bbox_width, rhs=nd.transpose(bbox_width, axes=(0, 2, 1))) delta_width = nd.log(delta_width) delta_height = nd.broadcast_div(lhs=bbox_height, rhs=nd.transpose(bbox_height, axes=(0, 2, 1))) delta_height = nd.log(delta_height) concat_list = [delta_x, delta_y, delta_width, delta_height] for idx, sym in enumerate(concat_list): concat_list[idx] = nd.expand_dims(sym, axis=3) position_matrix = nd.concat(*concat_list, dim=3) return position_matrix
Example #8
Source File: coder.py From cascade_rcnn_gluon with Apache License 2.0 | 5 votes |
def __init__(self, stds=(0.1, 0.1, 0.2, 0.2), means=(0., 0., 0., 0.)): super(NormalizedBoxCenterEncoder, self).__init__() assert len(stds) == 4, "Box Encoder requires 4 std values." self._stds = stds self._means = means with self.name_scope(): self.corner_to_center = BBoxCornerToCenter(split=True)
Example #9
Source File: coder.py From cascade_rcnn_gluon with Apache License 2.0 | 5 votes |
def __init__(self, num_class, stds=(0.1, 0.1, 0.2, 0.2), means=(0., 0., 0., 0.)): super(NormalizedPerClassBoxCenterEncoder, self).__init__() assert len(stds) == 4, "Box Encoder requires 4 std values." assert num_class > 0, "Number of classes must be positive" self._num_class = num_class self._stds = stds self._means = means with self.name_scope(): self.corner_to_center = BBoxCornerToCenter(split=True)
Example #10
Source File: coder.py From cascade_rcnn_gluon with Apache License 2.0 | 5 votes |
def forward(self, samples, matches, anchors, labels, refs): """Encode BBox One entry per category""" F = nd ref_boxes = F.repeat(refs.reshape((0, 1, -1, 4)), axis=1, repeats=matches.shape[1]) ref_boxes = F.split(ref_boxes, axis=-1, num_outputs=4, squeeze_axis=True) ref_boxes = F.concat(*[F.pick(ref_boxes[i], matches, axis=2).reshape((0, -1, 1)) \ for i in range(4)], dim=2) ref_labels = F.repeat(labels.reshape((0, 1, -1)), axis=1, repeats=matches.shape[1]) ref_labels = F.pick(ref_labels, matches, axis=2).reshape((0, -1, 1)) g = self.corner_to_center(ref_boxes) a = self.corner_to_center(anchors) t0 = ((g[0] - a[0]) / a[2] - self._means[0]) / self._stds[0] t1 = ((g[1] - a[1]) / a[3] - self._means[1]) / self._stds[1] t2 = (F.log(g[2] / a[2]) - self._means[2]) / self._stds[2] t3 = (F.log(g[3] / a[3]) - self._means[3]) / self._stds[3] codecs = F.concat(t0, t1, t2, t3, dim=2) temp = F.tile(samples.reshape((0, -1, 1)), reps=(1, 1, 4)) > 0.5 targets = F.where(temp, codecs, F.zeros_like(codecs)) masks = F.where(temp, F.ones_like(temp), F.zeros_like(temp)) out_targets = [] out_masks = [] for cid in range(self._num_class): same_cid = ref_labels == cid # keep orig targets out_targets.append(targets) # but mask out the one not belong to this class out_masks.append(masks * same_cid.repeat(axis=-1, repeats=4)) all_targets = F.stack(*out_targets, axis=0) all_masks = F.stack(*out_masks, axis=0) return all_targets, all_masks
Example #11
Source File: coder.py From cascade_rcnn_gluon with Apache License 2.0 | 5 votes |
def __init__(self, num_class, stds=(0.1, 0.1, 0.2, 0.2), means=(0., 0., 0., 0.)): super(NormalizedBoxCenterEncoder_Cascade, self).__init__() assert len(stds) == 4, "Box Encoder requires 4 std values." assert num_class > 0, "Number of classes must be positive" self._num_class = num_class self._stds = stds self._means = means with self.name_scope(): self.corner_to_center = BBoxCornerToCenter(split=True)
Example #12
Source File: coder.py From cascade_rcnn_gluon with Apache License 2.0 | 5 votes |
def __init__(self, stds=(0.1, 0.1, 0.2, 0.2), means=(0., 0., 0., 0.), convert_anchor=False, clip=None): super(NormalizedBoxCenterDecoder, self).__init__() assert len(stds) == 4, "Box Encoder requires 4 std values." self._stds = stds self._means = means self._clip = clip if convert_anchor: self.corner_to_center = BBoxCornerToCenter(split=True) else: self.corner_to_center = None
Example #13
Source File: learn_nms.py From kaggle-rsna18 with MIT License | 4 votes |
def refine_bbox_nd(bbox, bbox_delta, im_info=None, means=None, stds=None): xmin, ymin, xmax, ymax = nd.split(data=bbox, num_outputs=4, axis=1) bbox_width = xmax - xmin + 1. bbox_height = ymax - ymin + 1. center_x = 0.5 * (xmin + xmax) center_y = 0.5 * (ymin + ymax) bbox_delta_reshape = nd.Reshape(data=bbox_delta, shape=(0, -1, 4)) dx, dy, dw, dh = nd.split(data=bbox_delta_reshape, num_outputs=4, axis=2, squeeze_axis=1) if (means is not None) and (stds is not None): dx = dx * stds[0] + means[0] dy = dy * stds[1] + means[1] dw = dw * stds[2] + means[2] dh = dh * stds[3] + means[3] refine_center_x = nd.broadcast_add(lhs=center_x, rhs=nd.broadcast_mul(lhs=bbox_width, rhs=dx)) refine_center_y = nd.broadcast_add(lhs=center_y, rhs=nd.broadcast_mul(lhs=bbox_height, rhs=dy)) refined_width = nd.broadcast_mul(lhs=bbox_width, rhs=nd.exp(dw)) refined_height = nd.broadcast_mul(lhs=bbox_height, rhs=nd.exp(dh)) w_offset = 0.5 * (refined_width - 1.) h_offset = 0.5 * (refined_height - 1.) refined_xmin = nd.expand_dims(refine_center_x - w_offset, axis=1) refined_ymin = nd.expand_dims(refine_center_y - h_offset, axis=1) refined_xmax = nd.expand_dims(refine_center_x + w_offset, axis=1) refined_ymax = nd.expand_dims(refine_center_y + h_offset, axis=1) refined_bbox = nd.concat(refined_xmin, refined_ymin, refined_xmax, refined_ymax, dim=1) if im_info is not None: # assume im_info [[height, width, scale]] with shape (1,3) im_hw = nd.slice_axis(im_info, axis=1, begin=0, end=2) im_wh = nd.reverse(im_hw, axis=1) im_wh = im_wh - 1. im_wh = nd.tile(data=im_wh, reps=(1, 2)) im_wh = nd.Reshape(im_wh, shape=(1, 4, 1)) refined_bbox = nd.broadcast_minimum(lhs=refined_bbox, rhs=im_wh) refined_bbox = nd.broadcast_maximum(lhs=refined_bbox, rhs=nd.zeros_like(refined_bbox)) # print refined_bbox.debug_str() return refined_bbox
Example #14
Source File: learn_nms.py From Relation-Networks-for-Object-Detection with MIT License | 4 votes |
def refine_bbox_nd(bbox, bbox_delta, im_info=None, means=None, stds=None): xmin, ymin, xmax, ymax = nd.split(data=bbox, num_outputs=4, axis=1) bbox_width = xmax - xmin + 1. bbox_height = ymax - ymin + 1. center_x = 0.5 * (xmin + xmax) center_y = 0.5 * (ymin + ymax) bbox_delta_reshape = nd.Reshape(data=bbox_delta, shape=(0, -1, 4)) dx, dy, dw, dh = nd.split(data=bbox_delta_reshape, num_outputs=4, axis=2, squeeze_axis=1) if (means is not None) and (stds is not None): dx = dx * stds[0] + means[0] dy = dy * stds[1] + means[1] dw = dw * stds[2] + means[2] dh = dh * stds[3] + means[3] refine_center_x = nd.broadcast_add(lhs=center_x, rhs=nd.broadcast_mul(lhs=bbox_width, rhs=dx)) refine_center_y = nd.broadcast_add(lhs=center_y, rhs=nd.broadcast_mul(lhs=bbox_height, rhs=dy)) refined_width = nd.broadcast_mul(lhs=bbox_width, rhs=nd.exp(dw)) refined_height = nd.broadcast_mul(lhs=bbox_height, rhs=nd.exp(dh)) w_offset = 0.5 * (refined_width - 1.) h_offset = 0.5 * (refined_height - 1.) refined_xmin = nd.expand_dims(refine_center_x - w_offset, axis=1) refined_ymin = nd.expand_dims(refine_center_y - h_offset, axis=1) refined_xmax = nd.expand_dims(refine_center_x + w_offset, axis=1) refined_ymax = nd.expand_dims(refine_center_y + h_offset, axis=1) refined_bbox = nd.concat(refined_xmin, refined_ymin, refined_xmax, refined_ymax, dim=1) if im_info is not None: # assume im_info [[height, width, scale]] with shape (1,3) im_hw = nd.slice_axis(im_info, axis=1, begin=0, end=2) im_wh = nd.reverse(im_hw, axis=1) im_wh = im_wh - 1. im_wh = nd.tile(data=im_wh, reps=(1, 2)) im_wh = nd.Reshape(im_wh, shape=(1, 4, 1)) refined_bbox = nd.broadcast_minimum(lhs=refined_bbox, rhs=im_wh) refined_bbox = nd.broadcast_maximum(lhs=refined_bbox, rhs=nd.zeros_like(refined_bbox)) # print refined_bbox.debug_str() return refined_bbox