code: def main(image_path):
      alexnet = mx.gluon.model_zoo.vision.alexnet(pretrained=True)
  
      # print(alexnet)
  
      orig = cv2.imread(image_path)[..., ::-1]
      orig = cv2.resize(orig, (224, 224))
      img = orig.copy().astype(np.float32)
  
      mean = [0.485, 0.456, 0.406]
      std = [0.229, 0.224, 0.225]
      img /= 255.0
      img = old_div((img - mean), std)
      img = img.transpose(2, 0, 1)
  
      img = np.expand_dims(img, axis=0)
  
      # array = mx.nd.array(img)
  
      # advbox demo
      m = MxNetModel(alexnet, None, (-1, 1), channel_axis=1)
      attack = FGSMT(m)
      # attack = FGSM(m)
  
      # 静态epsilons
      attack_config = {
          "epsilons": 0.2,
          "epsilon_steps": 1,
          "steps": 100,
      }
  
      inputs = img
      # labels=388
      labels = None
  
      print(inputs.shape)
  
      adversary = Adversary(inputs, labels)
      # adversary = Adversary(inputs, 388)
  
      tlabel = 538
      adversary.set_target(is_targeted_attack=True, target_label=tlabel)
  
      adversary = attack(adversary, **attack_config)
  
      if adversary.is_successful():
          print(
              "attack success, adversarial_label=%d"
              % (adversary.adversarial_label)
          )
  
          adv = adversary.adversarial_example[0]
          adv = adv.transpose(1, 2, 0)
          adv = (adv * std) + mean
          adv = adv * 255.0
          adv = adv[..., ::-1]  # RGB to BGR
          adv = np.clip(adv, 0, 255).astype(np.uint8)
          cv2.imwrite("img_adv.png", adv)
  
      else:
          print("attack failed")
  
      print("fgsm attack done")
  
file_path: AdvBox/tutorials/imagenet_tutorial_fgsm_mxnet.py
imports: from __future__ import division
  from __future__ import print_function
  from past.utils import old_div
  import sys
  import logging
  from mxnet import gluon
  import mxnet
  from mxnet.gluon import nn
  from mxnet import ndarray
  import matplotlib.pyplot
  import cv2
  from mxnet import image
  from mxnet import autograd
  from adversarialbox.adversary import Adversary
  from adversarialbox.attacks.gradient_method import FGSMT
  from adversarialbox.attacks.gradient_method import FGSM
  from adversarialbox.models.mxnet import MxNetModel
  import numpy
  import cv2
label_desc: Use image node_id 1 for calling a global function with example usage: main(image_path) without return types