code: def backend_check_membership_probabilities(
      attack, dataset, attack_train_ratio
  ):
      (x_train, y_train), _ = dataset
      attack_train_size = int(len(x_train) * attack_train_ratio)
  
      kwargs = {
          "norm": 2,
          "max_iter": 2,
          "max_eval": 4,
          "init_eval": 1,
          "init_size": 1,
          "verbose": False,
      }
      # infer attacked feature on remainder of data
      inferred_train_prob = attack.infer(
          x_train[attack_train_size:],
          y_train[attack_train_size:],
          probabilities=True,
          **kwargs,
      )
  
      # check accuracy
      backend_check_probabilities(inferred_train_prob)
  
file_path: adversarial-robustness-toolbox/tests/attacks/inference/membership_inference/test_label_only_boundary_distance.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  import pytest
  import numpy
  from art.attacks.inference.membership_inference.label_only_boundary_distance import LabelOnlyDecisionBoundary
  from art.estimators.estimator import BaseEstimator
  from art.estimators.classification.classifier import ClassifierMixin
  from tests.attacks.utils import backend_test_classifier_type_check_fail
  from tests.utils import ARTTestException
label_desc: Use image node_id 8 for calling a global function with example usage: backend_check_membership_probabilities(attack, dataset, attack_train_ratio) without return types