mindspore.nn.MeanSurfaceDistance
- class mindspore.nn.MeanSurfaceDistance(symmetric=False, distance_metric='euclidean')[source]
This function is used to compute the Average Surface Distance from y_pred to y under the default setting. Mean Surface Distance(MSD), the mean of the vector is taken. This tell us how much, on average, the surface varies between the segmentation and the GT.
- Parameters
distance_metric (string) – The parameter of calculating Hausdorff distance supports three measurement methods, “euclidean”, “chessboard” or “taxicab”. Default: “euclidean”.
symmetric (bool) – if calculate the symmetric average surface distance between y_pred and y. In addition, if sets
symmetric = True
, the average symmetric surface distance between these two inputs will be returned. Defaults: False.
Examples
>>> x = Tensor(np.array([[3, 0, 1], [1, 3, 0], [1, 0, 2]])) >>> y = Tensor(np.array([[0, 2, 1], [1, 2, 1], [0, 0, 1]])) >>> metric = nn.MeanSurfaceDistance(symmetric=False, distance_metric="euclidean") >>> metric.clear() >>> metric.update(x, y, 0) >>> mean_average_distance = metric.eval() >>> print(mean_average_distance) 0.8047378541243649
- update(*inputs)[source]
Updates the internal evaluation result ‘y_pred’, ‘y’ and ‘label_idx’.
- Parameters
inputs –
- Input ‘y_pred’, ‘y’ and ‘label_idx’. ‘y_pred’ and ‘y’ are Tensor or numpy.ndarray. ‘y_pred’ is the
predicted binary image. ‘y’ is the actual binary image. ‘label_idx’, the data type of label_idx is int.
- Raises:
ValueError: If the number of the inputs is not 3.