pytorch里面封装好的函数,如果要修改怎么办

因为我要在封装的类或者方法(函数)的基础上进行修改,所以继承然后重写覆盖不能满足我的要求,所以我采用最复杂也是最简单当方式来做

1.找到原始类或者函数,将其复制到我的代码里面

2.进行修改

3.调用复制到自己代码中的类或者方法,而不是调用库里面的

下面解决几个可能遇到的问题

1.如何找到原始函数?

在pycharm中Ctrl + 鼠标左键 就可以快速进入函数内部

但是不少小伙伴是在服务器上跑的,或者由于各种原因无法使用上面的快捷方式

可以使用以下函数将函数打印出来

import torch.nn.functional as F
import inspect
source_code=inspect.getsource(F.multi_head_attention_forward)
print(module_source_code)

#print(MyClass)
#类也是一样的

2.调用调整好的类或者方法

调用和一般的调用没什么区别

def aMethod():
    print("我已经成功调用这个函数了")

class MyClass:
    def __init__(self, value):
        self.value = value
        

    def forward(self):
        print("print(value*2)")
        print(self.value*2)
        aMethod()



myclass=MyClass(11)
myclass.forward()

或者

class MyClass:
    def __init__(self, value):
        self.value = value
        
    def aMethod(self):
        print("我已经成功调用这个函数了")
    def forward(self):
        print("print(value*2)")
        print(self.value*2)
        self.aMethod()



myclass=MyClass(11)
myclass.forward()

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-08 18:34:05       8 阅读
  2. 【Python教程】压缩PDF文件大小

    2024-06-08 18:34:05       9 阅读
  3. 通过文章id递归查询所有评论(xml)

    2024-06-08 18:34:05       10 阅读

热门阅读

  1. C语言——第五章习题

    2024-06-08 18:34:05       6 阅读
  2. 动手学深度学习——tensor

    2024-06-08 18:34:05       6 阅读
  3. MySQL 运算符以及优先级

    2024-06-08 18:34:05       8 阅读
  4. MATLAB 函数 function

    2024-06-08 18:34:05       6 阅读
  5. 源码编译OpenCV 启用cuda 加速

    2024-06-08 18:34:05       10 阅读
  6. 【Qt】Qt中的几种Timer

    2024-06-08 18:34:05       7 阅读
  7. 8*8LED点阵点亮一个点

    2024-06-08 18:34:05       6 阅读
  8. 系统安全及应用

    2024-06-08 18:34:05       6 阅读
  9. qt c++类继承QWidget和不继承有什么区别

    2024-06-08 18:34:05       6 阅读
  10. 常用sql

    2024-06-08 18:34:05       6 阅读
  11. QTGUI编程入门:解锁图形用户界面设计的奥秘

    2024-06-08 18:34:05       8 阅读
  12. AopProxyUtils.ultimateTargetBean(bean);

    2024-06-08 18:34:05       7 阅读
  13. loading组件封装原理

    2024-06-08 18:34:05       9 阅读