my-tools icon indicating copy to clipboard operation
my-tools copied to clipboard

my commonly-used tools

My Tools

常用的一些轮子

shell script

  • common_commands.md:服务器常用命令。
  • install_package.sh:使用 conda 命令根据 requirement.txt 安装包。
  • pycharm_ssh.md:有跳板机的情况下通过 pycharm 连接远程服务器。
  • pycharm_ddp_debug.md:使用 pycharm 对 pytorch ddp 进行 debug。

python script

visualization
训练可视化
  • wandb for pytorch:使用 wandb 对训练进行可视化。
  • tensorboardx.py:使用 tensorboardX 对训练进行可视化。
结果可视化
pytorch
printer
  • logger.py:使用 logging 模块同时将日志打印到终端和文件。
cuda_memory_tracker

参考:https://github.com/Oldpan/Pytorch-Memory-Utils

  • model_size_estimate.py:估计 pytorch 模型参数和中间变量所占显存的大小。
  • gpu_mem_track.py:精确跟踪 pytorch 模型的显存使用情况(需要安装 NVIDIA 的 python 环境库 pynvml:pip install nvidia-ml-py3,或 conda install -c conda-forge pynvml)。
  • examples.py:对于 gpu_mem_track.py 的使用示例。

另一种监控显存的方法:Pytorch Profiler

PyTorch显存机制分析 - Connolly的文章 - 知乎

configargparse

统一了命令行参数、配置文件、环境变量等设置,并创建为单例模式,使得它们在代码的任何地方都可以通过 Config.get_instatnce() 被导入和使用。

  • example.py:使用 configargparse 的案例。
  • model.yaml:yaml 风格的配置文件案例。

另一种指定实验配置的方法:Sacred

other
  • hook.py:使用 pytorch hook 获取中间层变量的值和梯度。
  • get_batch.py:获取一个 batch_siez 的 data。
  • time.py:计算程序运行时间。
  • model_stats.py:打印模型状态,包括参数名、参数量、显存开销、Flops、激活张量的大小等。
  • multi_process.py:多进程的使用示例。

latex

  • def_and_cmd.tex:latex中常用的包、定义、命令等。

v2ray script

  • README.md:v2ray的相关命令、配置、阅读材料。