Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在PyTorch中查找函数/类定义

在PyTorch中查找函数/类定义
EN

Stack Overflow用户
提问于 2021-04-13 15:20:20
回答 1查看 107关注 0票数 1

我想找出某些类和函数在PyTorch (和其他库)中定义的位置。

不幸的是,以下方法不起作用:

代码语言:javascript
运行
AI代码解释
复制
import inspect
import torch

inspect.getsource(torch.tensor)

它抛出以下错误:

代码语言:javascript
运行
AI代码解释
复制
TypeError: module, class, method, function, traceback, frame, or code object was expected, got builtin_function_or_method

此外,在PyCharm中,我通常使用'gd‘(在vim模式下)来查找函数/类定义,但这对PyTorch也不起作用。

请帮助我了解这里的问题是什么,更重要的是,我如何才能找到这些定义。

EN

回答 1

Stack Overflow用户

发布于 2021-04-14 08:49:23

这实际上很复杂。Pytorch/libtorch是一个庞大的项目,它依赖于许多已经在C/Cuda中实现的内置底层函数。大多数低级内核(例如数学运算)甚至有几个实现,以便针对CPU和GPU等进行不同的优化。因此,这个库中有很多不是python代码的东西,inspect将会有一段艰难的时间。

如果您想找到源文件,您可能需要自己深入研究github repository,并充分利用grepfind等工具。然而,torch.nn模块几乎完全是python,所以我认为inspect可以正确地使用它的特性(如数据集、数据加载器、模块、优化器等)。

最后,如果您需要的话,下面是python的文件,您可以在其中找到混合了对C api的调用的torch.tensor代码:torch tensor source code

关于下面评论中的问题:

我不能提供一个完整的答案,因为这超出了我对python和C++代码在torch中是如何接口的理解。但我会尽我所能(如果有人对此有任何更正或改进,请一定要做)。

C源代码和python代码之间有一个根本的区别: C/C++是编译的,因此在这些语言中实现的特性是编译后的汇编代码。换句话说,当python代码从底层C代码调用函数/对象时,它会调用人类不再可读的汇编函数。因此,计算机可以进行调用,但是查找源代码(供您阅读)的inspect功能无法工作,因为这些代码不再存在(至少不是inspect正在查找的地方)。您还需要其他专门分析汇编指令的工具,如反汇编程序、调试器等(如果您足够勇敢,还可以学习x86-64汇编语言编程)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67077747

复制
相关文章
在Python中定义Main函数
多编程语言都有一个特殊的函数,当操作系统开始运行程序时会自动执行该函数。这个函数通常被命名为main(),并且依据语言标准具有特定的返回类型和参数。另一方面,Python解释器从文件顶部开始执行脚本,并且没有自动执行的特殊函数。
程序员皮克
2021/12/29
4K0
在ClickHouse中自定义脚本函数
在先前的一篇文章中我曾介绍过,如何在 ClickHouse 中用 SQL 创建 UDF 自定义函数 ,《传送门》在此。
Nauu
2022/03/29
4.3K0
在PyTorch中构建高效的自定义数据集
PyTorch 最近已经出现在我的圈子里,尽管对Keras和TensorFlow感到满意,但我还是不得不尝试一下。令人惊讶的是,我发现它非常令人耳目一新,非常讨人喜欢,尤其是PyTorch 提供了一个Pythonic API、一个更为固执己见的编程模式和一组很好的内置实用程序函数。我特别喜欢的一项功能是能够轻松地创建一个自定义的Dataset对象,然后可以与内置的DataLoader一起在训练模型时提供数据。
磐创AI
2020/07/09
3.7K0
在PyTorch中构建高效的自定义数据集
在Jar包中查找Java类的小工具
今天在维护一个遗留了很久很久的用Java开发的系统的时候,在做了一些修改后,报了一个类找不到,由于这个系统实在是上了年纪了,里面很多类估计都有二十多岁了,实在不知道这个类是在哪个包里,于是乎想到能不能写个工具来查找,所以今天写了一个小代码,专门干这个事,记录一下也许以后还用得着。
kongxx
2019/01/07
1.8K0
pytorch进行CIFAR-10分类(3)定义损失函数和优化器
pytorch将深度学习中常用的优化方法全部封装在torch.optim之中,所有的优化方法都是继承基类optim.Optimizier
TeeyoHuang
2019/05/25
1.4K0
pytorch中的loss函数_pytorch loss不下降
2)mse只计算两个差异,做回归用的,数据相同,bceloss比mseloss大。
全栈程序员站长
2022/10/02
6430
windows中在 pycharm中安装pytorch
windows中在 pycharm中安装pytorch 打开pycharm 打开file————settings————Project Interpreter———— 点击+号
全栈程序员站长
2022/09/28
1.6K0
windows中在 pycharm中安装pytorch
理解 PyTorch 中的 gather 函数
我遇到的代码是 NLP 相关的,代码中用 torch.gather() 来将一个 tensor 的 shape 从 (batch_size, seq_length, hidden_size) 转为 (batch_size, labels_length, hidden_size) ,其中 seq_length >= labels_length 。
Alan Lee
2021/12/07
2.1K0
理解 PyTorch 中的 gather 函数
EL中定义函数
1.在java类中要定义一个static函数 2配置:在WEB-INF/*.tld的配置文件 3在JSP页面上 4使用
HUC思梦
2020/09/03
1.2K0
EL中定义函数
梳理 | Pytorch中的激活函数
在人工神经网络中,我们有一个输入层,用户以某种格式输入数据,隐藏层执行隐藏计算并识别特征,输出是结果。因此,整个结构就像一个互相连接的神经元网络。
一点人工一点智能
2023/08/21
1.1K0
梳理 | Pytorch中的激活函数
自定义PyTorch中的Sampler
在训练GAN的过程中,一次只训练一个类别据说有助于模型收敛,但是PyTorch里面没有预设这种数据加载方式,要这样训练的话,需要自己定义Sampler,即自定义数据采样方式。下面是自定义的方法:
带萝卜
2020/10/23
3.9K0
在Python中实现线性查找
线性查找算法是最简单的查找算法之一。线性查找算法的输入是一个数组或列表和项,该算法查找数组中是否存在该项。如果找到该项,则返回其索引;否则,可以返回null或你认为在数组中不存在的任何其他值。
fanjy
2022/11/16
3.3K0
在Python中实现线性查找
在 PHP 中自定义 function_alias 函数为函数创建别名
我们知道 PHP 有一个为类创建一个别名的函数:class_alias,比如我们有个类名字是 WPJAM_Items,我们希望使用 WPJAM_Item 的时候效果一致,可以使用下面的代码为类 WPJAM_Items 创建一个别名 WPJAM_Item 。
Denis
2023/04/13
1.9K0
Dart自定义类、构造函数
//创建自定义类 命名为Person class Person { var name = "张三"; var age = 30; setInfo() { this.age = 50; } getInfo() { print("${this.name}, ${this.age}"); } // 默认构造函数只可写一个 简写 Person() Person() { print('实例化的时候自动触发'); } // 命名构造函数可以写多个 Pers
明知山
2020/09/03
7900
【Kotlin】常用的 Kotlin 类 ② ( 枚举类 | 枚举类定义函数 | 密封类 )
Kotlin 中使用 枚举类 定义常量 , 枚举类定义格式如下 : 枚举常量 都是 枚举类 的 实例对象 ;
韩曙亮
2023/03/30
1.1K0
excel中多条件查找_多条件查找用什么函数
然后再采用VLOOKUP进行如下查找:=VLOOKUP(F2&G2,A:D,4,0)
全栈程序员站长
2022/09/19
1.6K0
excel中多条件查找_多条件查找用什么函数
pytorch中autograd以及hook函数详解
有些公式为图片,如果这个页面加载不出来,请看这里:https://oldpan.me/archives/pytorch-autograd-hook
老潘
2018/05/14
3.4K4
pytorch中autograd以及hook函数详解
pytorch中autograd以及hook函数详解
pytorch中的Autograd mechanics(自动求梯度机制)是实现前向以及后向反馈运算极为重要的一环,pytorch官方专门针对这个机制进行了一个版块的讲解:
老潘
2018/06/21
1.1K0
pytorch中autograd以及hook函数详解
pytorch中squeeze()和unsqueeze()函数介绍
可以看出a的维度已经变为(2,1,3)了,同样如果需要在倒数第二个维度上增加一个维度,那么使用b.unsqueeze(-2)
狼啸风云
2021/03/03
1.1K0
点击加载更多

相似问题

在pytorch中定义损失函数

146

在PyTorch中应用自定义成对函数

15

Pytorch:定义自定义函数

33

pytorch中的多类加权损失函数

13

PyTorch中的自定义丢失函数

18
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文