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.4 kB

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

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