python script是什么_PyTorch:@weak_script_method decorator是做什么的?

def weak_script_method(fn):

weak_script_methods[fn] = {

"rcb": createResolutionCallback(frames_up=2),

"original_method": fn

}

return fn

但是,你不必担心那个装修工。此修饰符是JIT的内部。在

以@weak_script_method修饰的技术方法将添加到前面创建的weak_script_methods字典中,如下所示:

^{pr2}$

dict跟踪方法以避免循环依赖问题;方法在创建PyTorch图时调用其他方法。在

除非你能理解TorchScript的一般概念,否则这真的没有多大意义。在

TorchScript的思想是在PyTorch中训练模型,并将模型导出到另一个非Python生产环境(阅读:C++/C/CUDA)支持静态类型。在

Pythorch团队在有限的Python基础上制作了TorchScript来支持静态类型。

默认情况下,Python是动态类型化语言,但很少使用技巧(阅读:支票)它可以成为静态的类型化语言。在

因此TorchScript函数是Python的静态类型子集,它包含PyTorch的所有内置张量操作。这种差异允许TorchScript模块代码在不需要Python解释器的情况下运行。在

可以使用跟踪(torch.jit.trace()方法)将现有的PyTorch方法转换为TorchScript,也可以使用@torch.jit.script修饰符手动创建TorchScript。在

如果您使用跟踪,您将在最后得到一个类模块。示例如下:import inspect

import torch

def foo(x, y):

return x + y

traced_foo = torch.jit.trace(foo, (torch.rand(3), torch.rand(3)))

print(type(traced_foo)) #

print(traced_foo) #foo()

print(traced_foo.forward) #

lines = inspect.getsource(traced_foo.forward)

print(lines)

输出:

foo()

def forward(self, *args, **kwargs):

return self._get_method('forward')(*args, **kwargs)

您可以使用“检查”模块进一步调查。这只是一个演示如何使用跟踪转换一个函数。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值