问题标签 [line-profiler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - 调用 line_profiler 时没有名为“line_profiler._line_profiler”的模块
我打算在 Pycharm 中按以下方式使用 line_profiler 测试我的代码,但得到了一个错误,就像标题所说的那样。我在 miniconda 3.8 和 python 3.7 (Windows) 中都尝试过,但遇到了同样的错误,我不知道如何解决。我访问了源代码所在的 github 页面,还尝试将我的 python 文件作为脚本运行。最后,由于这个错误,所有尝试都失败了。这似乎是一个错误,但我发现 Colab 中一切正常。谁能给我任何建议?随时发表评论,我将不胜感激。
python - Python kernprof 行分析器错误结果
我有两个我描述的功能。如果我运行 kernprof,它说我的第一个函数在 75 秒内运行,但第二个函数在 15 秒内运行 python-cythonized。
我已经尝试在python中使用时间模块并自己测量它,我发现第一个函数更像是12秒,第二个函数更像是9秒。
为什么呢?
python - 为什么pyTorch使用GPU时Python子进程模块运行如此缓慢?
在 pytorch 中训练神经网络时,我一直在尝试使用 python 子进程模块,但我注意到如果我在 gpu 上初始化了一个网络,子进程的运行速度会慢很多倍。这是我使用的示例脚本,具有非常简单的线性网络,使用 line_profiler 分析时间,并循环一个简单的子进程调用 100 次:
只需将小型网络移动到 gpu 就会导致 subprocess.run() 的执行速度降低 4 倍以上。
当网络在 cpu 上时,我从 line_profiler 得到的结果:
我在 GPU 上初始化网络时的结果:
有谁知道导致这种减速的原因以及如何通过在 GPU 上初始化的网络来提高速度?我很困惑为什么在 GPU 上初始化神经网络会对 subprocess.run() 的速度产生任何影响。任何帮助是极大的赞赏!
python - 如何一起使用pytest、hypothesis和line_profiler/kernprof?
弄清楚为什么这么慢?我想使用 line_profiler 分析我的示例生成。
但是,我无法让它工作。这是我尝试过的:
kernprof -m pytest -n 3 tests/test_conv.py --hypothesis-profile default
pytest -m line_profiler -n 3 tests/test_conv.py --hypothesis-profile default
python3 -m line_profiler -m pytest -n 3 tests/test_conv.py --hypothesis-profile default
- https://pypi.org/project/pytest-line-profiler/
这些都没有奏效。前三个立即失败,要么不知道,要么不知道@profile
pytest 或 line_profiler IIRC。
如何让这三个人一起合作?我对 Nr 寄予厚望。4,但是它的文档指出您可能需要注释您的测试函数:
@pytest.mark.line_profile.with_args(f, g)
但是我的参数是由假设提供的,所以我尝试了
@pytest.mark.line_profile
什么也没做。
我还尝试了使用命令行的替代方法:
pytest --line-profile path.to.function_to_be profiled [...]
但是,我无法弄清楚path.to.function_to_be profiled
我的情况是什么。我的测试函数位于tests/test_conv.py
并命名为test_padding
. 然而,既不
pytest -n auto --line-profile test_padding tests/test_conv.py --hypothesis-profile default
也不
pytest -n auto --line-profile test_conv.test_padding tests/test_conv.py --hypothesis-profile default
工作。两个错误都说他们找不到那个功能。
因此我问:如何?
安装的是(通过 pip):
python - Line_Profiler 如何获取测量函数的返回值
我正在使用这样的 Line_Profiler
但是我想使用func()的返回值。解决方案之一是将返回值分配给全局值,如下所示
但这意味着我必须更改 func() 的源代码
如何在不修改 func() 源代码的情况下以更好的方式获取返回值?
python - 在我的 m1 max 上导入 line_profiler 会导致分段错误
正如我在标题中所说,导入line_profiler
会导致分段错误。我在 macbook pro m1 max 上运行 python 3.9.7/conda-forge。有人对我如何解决这个问题有任何建议吗?
python - 如何在 python 中对嵌套函数执行 %lprun 工作?
在 jupyter Notebook 中,我试图在嵌套函数上使用 %lprun 但我没有成功。
以下代码,在笔记本单元格中
输出消息(Hello World 和 GoodBye),但在出现此错误后:
UsageError: Could not find function 'outerfoo().innerfoo'。
AttributeError:“NoneType”对象没有属性“innerfoo”
和这个,
不打印消息并给出此错误:
UsageError: Could not find function 'innerfoo'。NameError:名称“innerfoo”未定义
怎么可能配置文件innerfoo
?
python - 使用 jupyter notebook 时 line_profiler 找不到当前文件
我在带有 vscode 的 .ipynb 文件中使用 line_profiler:
它曾经正常工作,但今天我遇到了这个:
唯一的变化是我现在在笔记本中调试我的代码。如果我在调试模式下运行这个单元,它会再次工作。
似乎jupyter在调试时以不同的路径运行单元格,但line_profiler现在只能获取调试路径,而无法获取正常路径。
如何解决?
python - 如何清除/重置 Python 行分析器的结果?
我试图在运行时多次启动和停止 Python 函数的行分析。因此,我想在开始新的分析时重置已经收集的统计信息。有没有办法做到这一点?
由于缺乏明显的解决方案,我还尝试用lp
新实例替换线分析器:
但不知何故,新的统计数据是空的,可能是因为函数count()
不能被包装两次?
line-profiler - 没有名为“_line_profiler”的模块
版本 3.1.0、3.3.0 和 3.4.0 都返回相同的错误No module named '_line_profiler'
众所周知,版本 3.2.0 存在错误并返回No module named 'line_profiler._line_profiler'
我首先安装了 line-profiler pip install line_profiler
,根据这个问题下的评论这是错误的
我想使用 kernprof 脚本,如 github 页面所述。我已经在另一个环境中成功使用了它,并想检查输出python -m line_profiler prep_train_data.py.lprof
我究竟做错了什么?
更新:
直接从 github 安装时,使用 kernprof 脚本适用于 2.1 版,尽管这个 repos持续提交是 3 年前。
在单个函数上使用 lineprofiler 按预期工作