You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

mindarmour.utils.rst 3.5 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. mindarmour.utils
  2. ================
  3. MindArmour的工具方法,包含日志记录和网络包装。
  4. .. py:class:: mindarmour.utils.GradWrap(network)
  5. 构建一个网络,以计算输入空间中网络输出的梯度,并由 `weight` 加权,表示为雅可比矩阵。
  6. **参数:**
  7. - **network** (Cell) - 要包装的目标网络。
  8. .. py:method:: construct(*data)
  9. 计算雅可比矩阵(jacobian matrix)。
  10. **参数:**
  11. - **data** (Tensor) - 数据由输入和权重组成。
  12. - **inputs** - 网络的输入。
  13. - **weight** - 每个梯度的权重,'weight'与'inputs'的维度相同。
  14. **返回:**
  15. - **Tensor** - 雅可比矩阵。
  16. .. py:class:: mindarmour.utils.GradWrapWithLoss(network)
  17. 构造一个网络来计算输入空间中损失函数的梯度,并由 `weight` 加权。
  18. **参数:**
  19. - **network** (Cell) - 要包装的目标网络。
  20. .. py:method:: construct(inputs, labels)
  21. 使用标签和权重计算 `inputs` 的梯度。
  22. **参数:**
  23. - **inputs** (Tensor) - 网络的输入。
  24. - **labels** (Tensor) - 输入的标签。
  25. **返回:**
  26. - **Tensor** - 梯度矩阵。
  27. .. py:class:: mindarmour.utils.LogUtil
  28. 日志记录模块。
  29. 在长期运行的脚本中记录随时间推移的日志统计信息。
  30. **异常:**
  31. - **SyntaxError** - 创建此类异常。
  32. .. py:method:: add_handler(handler)
  33. 添加日志模块支持的其他处理程序。
  34. **参数:**
  35. - **handler** (logging.Handler) - 日志模块支持的其他处理程序。
  36. **异常:**
  37. - **ValueError** - 输入handler不是logging.Handler的实例。
  38. .. py:method:: info(tag, msg, *args)
  39. 记录'[tag] msg % args',严重性为'INFO'。
  40. **参数:**
  41. - **tag** (str) - Logger标记。
  42. - **msg** (str) - Logger消息。
  43. - **args** (Any) - 辅助值。
  44. .. py:method:: error(tag, msg, *args)
  45. 记录'[tag] msg % args',严重性为'ERROR'。
  46. **参数:**
  47. - **tag** (str) - Logger标记。
  48. - **msg** (str) - Logger消息。
  49. - **args** (Any) - 辅助值。
  50. .. py:method:: get_instance()
  51. 获取类 `LogUtil` 的实例。
  52. **返回:**
  53. - **Object** - 类 `LogUtil` 的实例。
  54. .. py:method:: debug(tag, msg, *args)
  55. 记录'[tag] msg % args',严重性为'DEBUG'。
  56. **参数:**
  57. - **tag** (str) - Logger标记。
  58. - **msg** (str) - Logger消息。
  59. - **args** (Any) - 辅助值。
  60. .. py:method:: set_level(level)
  61. 设置此logger的日志级别,级别必须是整数或字符串。支持的级别为 'NOTSET'(integer: 0)、'ERROR'(integer: 1-40)、'WARNING'('WARN', integer: 1-30)、'INFO'(integer: 1-20)以及'DEBUG'(integer: 1-10)
  62. 例如,如果logger.set_level('WARNING')或logger.set_level(21),则在运行时将打印脚本中的logger.warn()和logger.error(),而logger.info()或logger.debug()将不会打印。
  63. **参数:**
  64. - **level** (Union[int, str]) - logger的级别。
  65. .. py:method:: warn(tag, msg, *args)
  66. 记录'[tag] msg % args',严重性为'WARNING'。
  67. **参数:**
  68. - **tag** (str) - Logger标记。
  69. - **msg** (str) - Logger消息。
  70. - **args** (Any) - 辅助值。

MindArmour关注AI的安全和隐私问题。致力于增强模型的安全可信、保护用户的数据隐私。主要包含3个模块:对抗样本鲁棒性模块、Fuzz Testing模块、隐私保护与评估模块。 对抗样本鲁棒性模块 对抗样本鲁棒性模块用于评估模型对于对抗样本的鲁棒性,并提供模型增强方法用于增强模型抗对抗样本攻击的能力,提升模型鲁棒性。对抗样本鲁棒性模块包含了4个子模块:对抗样本的生成、对抗样本的检测、模型防御、攻防评估。