[神器大集合]Trace Python Codes / UML in Pycharm

8 篇文章 0 订阅
6 篇文章 0 订阅

https://blog.csdn.net/qq_28660035/article/details/80688427

https://blog.csdn.net/kkk584520/article/details/9490233

https://blog.csdn.net/panda1234lee/article/details/83473471

https://blog.csdn.net/qq_25147897/article/details/65634409

使用NVIDIA Visual Profiler追踪Python程序来分析GPU调用[nvprof-tools]

代码编写

import numpy as np
import torch
import time
def cholesky_speed_test(device="cpu"):
    assert device in ("cpu","cuda")
    np.random.seed(123)
    n_rep = 10000
    dim = 16
    batches = 10

    A = np.random.normal(0,1,(batches,dim,dim))
    cov = np.matmul(A,A.swapaxes(1,2))

    pt_cov = torch.tensor(cov.astype(np.float32),device=device)
    L = torch.cholesky(pt_cov)

    torch.cuda.nvtx.range_push("CholeskyDecomposition")
    start_time = time.time()
    for i in range(n_rep):
        torch.cuda.nvtx.range_push("Iter{}".format(i))
        torch.cholesky(pt_cov, out=L)
        torch.cuda.nvtx.range_pop()
    duration = time.time() - start_time
    print("Duration: {:.3f}s on device {}".format(duration,device))
    torch.cuda.nvtx.range_pop()

cholesky_speed_test(device="cpu")
cholesky_speed_test(device="cuda")

编译运行

命令行下运行nvprof生成nvvp文件,而后使用nvvp调用NVIDIA Visual Profiler:

Usually nvprof, located at /usr/local/cuda/bin

Non-Visual Profiler

$ nvprof python train_mnist.py

I prefer to use --print-gpu-trace.

$ nvprof --print-gpu-trace python train_mnist.py

Visual Profiler

On GPU machine, run

$ nvprof -o prof.nvvp python train_mnist.py

Copy prof.nvvp into your local machine(如果命令行未改变目录,则不需要)

$ scp your_gpu_machine:/path/to/prof.nvvp .

Then, run nvvp (nvidia visual profiler) on your local machine:

$ nvvp prof.nvvp

It works more comfortably than X11 forwarding or something.

 

追踪Python函数内部调用

[神器不解释]Graphviz+pycallgraph

  • 官网下载Graphviz.deb,并安装sudo dkpg -i *.deb(依赖问题运行:sudo apt install -f);

  • 然后pip install pycallgraph;

  • 使用示例
|---main.py
|---downloadmusic.py
|---baidu.png
|---trace_detail.png

#####################################################################
# coding: -utf8-
# filename: main.py
from pycallgraph import PyCallGraph
from pycallgraph import Config
from pycallgraph import GlobbingFilter
from pycallgraph.output import GraphvizOutput
from downloadmuisc import *

# Setting depth and filters for tracer 
config = Config(max_depth=10)
# include exclude some dirs or packages
config.trace_filter = GlobbingFilter(exclude=[
    'pycallgraph.*',
    '*.secret_function',
])


graphviz = GraphvizOutput(output_file=r'./trace_detail.png')
with PyCallGraph(output=graphviz, config=config):
    download('http://www.baidu.com/img/bd_logo1.png', r'./baidu.png')

#####################################################################
# coding: -utf8-
# filename: downloadmusic.py

import urllib.request
import threading

def download(url, path):
    data = urllib.request.urlopen(url).read()
    open(path, 'wb').write(data)
    print("success!")

 

Graphviz +Pyreverse 绘制Python的UML类图

  • 1.linux环境下graphviz安装

graphviz是一个开源做图软件,她能画结构化的抽象和网络图形,在网络,生物信息学,软件工程,数据库和web设计,机器学习, 可视化接口等众多其他技术领域都有应用。
使用yum自动安装,任意路径下执行如下命令:

  sudo apt-get install graphviz
  • 2.pyreverse工具安装

  pyreverse能方便的生成uml类图,pylint里自带了pyreverse这个工具。使用pip安装pylint

pip install pylint
  • 3.使用,可以参考的命令为,scheduler为存放代码的目录
pyreverse -ASmy -o png scheduler/

Pycharm专业版:右键Diagrams工具可以显示UML类图

 ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

PyTorch网络可视化

 

 ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

 Pycharm配置程序内存

  • 打开pycharm64.vmoptions,进行配置

-Xms4094m
-Xmx20480m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Dawt.useSystemAAFontSettings=lcd
-Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine
-javaagent:/home/lijie/pycharm-2018.3.3/bin/JetbrainsCrack-release-enc.jar
  • -Xmx用来设置你的应用程序(不是IDE)能够使用的最大内存数,如果你的程序要花很大内存的话,那就需要修改缺省的设置。
  • -Xms用来设置程序初始化的时候内存栈的大小,增加这个值的话你的程序的启动性能会得到提高。

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

htop/top命令界面详解

Top命令监控某个进程的资源占有情况 

下面是各种内存:

  • VIRT:virtual memory usage

    1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
    2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

  • RES:resident memory usage 常驻内存

    1、进程当前使用的内存大小,但不包括swap out
    2、包含其他进程的共享
    3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
    4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

  • SHR:shared memory

    1、除了自身进程的共享内存,也包括其他进程的共享内存
    2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
    3、计算某个进程所占的物理内存大小公式:RES – SHR
    4、swap out后,它将会降下来

  • DATA

    1、数据占用的内存。如果top没有显示,按f键可以显示出来。
    2、真正的该程序要求的数据空间,是真正在运行中要使用的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
/home/chenxingyue/anaconda3/envs/py39/bin/python /home/chenxingyue/codes/caopengfei/CMeKG_tools/test4.py Loading a TensorFlow model in PyTorch, requires both PyTorch and TensorFlow to be installed. Please see https://pytorch.org/ and https://www.tensorflow.org/install/ for installation instructions. Loading a TensorFlow model in PyTorch, requires both PyTorch and TensorFlow to be installed. Please see https://pytorch.org/ and https://www.tensorflow.org/install/ for installation instructions. Traceback (most recent call last): File "/home/chenxingyue/codes/caopengfei/CMeKG_tools/test4.py", line 9, in <module> my_pred=medical_ner() File "/home/chenxingyue/codes/caopengfei/CMeKG_tools/medical_ner.py", line 21, in __init__ self.model = BERT_LSTM_CRF('/home/chenxingyue/codes/caopengfei/medical_ner', tagset_size, 768, 200, 2, File "/home/chenxingyue/codes/caopengfei/CMeKG_tools/model_ner/bert_lstm_crf.py", line 16, in __init__ self.word_embeds = BertModel.from_pretrained(bert_config,from_tf=True) File "/home/chenxingyue/anaconda3/envs/py39/lib/python3.9/site-packages/transformers/modeling_utils.py", line 2612, in from_pretrained model, loading_info = load_tf2_checkpoint_in_pytorch_model( File "/home/chenxingyue/anaconda3/envs/py39/lib/python3.9/site-packages/transformers/modeling_tf_pytorch_utils.py", line 390, in load_tf2_checkpoint_in_pytorch_model import tensorflow as tf # noqa: F401 ModuleNotFoundError: No module named 'tensorflow' 这个报错可以是需要把tensorflow安装到本地吗?还是Linux
最新发布
07-13

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值