# pprobe: Python Hook 工具
欢迎使用 pprobe,这是一个功能强大的 Python 钩子工具,旨在提升您的开发和调试体验。该工具提供了一系列特性,可以帮助您追踪函数调用、管理 PyTorch 中的设备转换等。以下是项目的概览、安装过程、使用方法和贡献指南。
## 项目概览
pprobe 是一个多用途的 Python 包,允许您:
- 在您的 Python 应用程序中追踪和记录函数调用。
- 检测和记录 PyTorch 中张量的设备转换。
- 使用命令行界面启用或禁用特定选项。
该工具对于调试复杂的 Python 应用程序特别有用,尤其是那些涉及像 PyTorch 这样的深度学习框架。
## 安装
要安装 pprobe,请克隆仓库并使用 pip 安装包及其依赖项:
```sh
git clone https://github.com/your-username/pprobe.git
cd pprobe
pip install -r requirements.txt
python setup.py install
pprobe 可以根据需要以多种方式使用:
在您的 Python 脚本中使用 pprobe,可以按以下方式导入和初始化:
from pprobe.bootstrap import TorchFunctionContext
context = TorchFunctionContext()
context.__enter__()
# 这里是您的代码
context.__exit__()
pprobe 配备了命令行界面,允许您启用、禁用、列出和重置选项。以下是一些示例:
列出当前状态:
## PPROBE CLI
██████╗ ██████╗ ██████╗ ██████╗ ██████╗ ███████╗
██╔══██╗██╔══██╗██╔══██╗██╔═══██╗██╔══██╗██╔════╝
██████╔╝██████╔╝██████╔╝██║ ██║██████╔╝█████╗
██╔═══╝ ██╔═══╝ ██╔══██╗██║ ██║██╔══██╗██╔══╝
██║ ██║ ██║ ██║╚██████╔╝██████╔╝███████╗
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝
+------------------------+--------+---------+ | TOGGLE-NAMES | STATUS | DEFAULT | +------------------------+--------+---------+ | PPROBE_ENABLE | True | False | | TORCH_REPRODUCE | True | True | | TORCH_CATCH_STEP | False | False | | TORCH_CATCH_LOSS | False | False | | TORCH_CATCH_LR | False | False | | TORCH_DUMP_OP | True | False | | TORCH_DUMP_MODULE | False | False | | TORCH_DUMP_DIST | False | False | | TORCH_DUMP_MEMORY | False | False | | TORCH_TEST_DUMP_OP | False | False | | TORCH_TEST_DUMP_MODULE | False | False | | TORCH_TEST_DUMP_DIST | False | False | | TORCH_PERF_ISSUE | False | False | | TORCH_TRACE_FILE | False | False | +------------------------+--------+---------+
**启用特定选项:**
```sh
PPROBE --enable option1,option2
禁用特定选项:
PPROBE --disable option1,option2
重置选项为默认:
PPROBE --reset
对于 PyTorch 用户,pprobe 提供了特定的钩子来追踪张量操作:
from pprobe.bootstrap import torch_hook_fn
torch_hook_fn('torch', torch)
欢迎对 pprobe 做出贡献!要贡献,请遵循以下步骤:
- fork 该仓库并将其克隆到您的本地机器。
- 为您的更改创建一个新的分支。
- 进行您的更改并确保测试通过。
- 提交一个拉取请求,附带您更改的详细描述。
要运行测试,请使用 tox:
tox
pprobe 在 MIT 许可证 下发布。
如有任何问题或反馈,请通过 [email protected] 联系。
请随意浏览此仓库中提供的代码和示例。我们希望 pprobe 将成为您 Python 开发工具包中的宝贵补充。编码愉快!
你可以将这个内容直接复制到 GitHub 上的 `README.md` 文件中。