编译器和解释器

http://zh.d2l.ai/chapter_computational-performance/hybridize.html

在 10.1.3.1 中,为什么有 torchscript 比无 torchscript 花的时间要更长呢(

实际运行有 torchscript 更快,torchscript 在多GPU下加速效果应该会更明显
image

文中显示的用法 obj = torch.jit.script(obj) 适用于nn.Module或者继承自nn.Module的class,对于function,一般是@注释,即 @torch.jit.script

@应该是装饰器的意思,不是注释 :joy:

和数学中的符号运算类似,不经加快了速度也加快了精度。相当于原来是走一步看一步,现在是一步走完

为什么我在resnet里面加了一行“net = torch.jit.script(net)”会报错呢 :cry:

net = nn.Sequential(b1, b2, b3, b4, b5,
                    nn.AdaptiveAvgPool2d((1,1)),
                    nn.Flatten(), nn.Linear(512, 10))
net = torch.jit.script(net)


我自己运行的时候也是有torchscript更慢一些 :joy:

net = get_net()
with Benchmark('无torchscript'):
    for i in range(100000): net(x)

net = torch.jit.script(net)
with Benchmark('有torchscript'):
    for i in range(100000): net(x)
无torchscript: 36.3626 sec
有torchscript: 31.0889 sec```

应该是数据量小了,你把循环次数改成100000,效果就会很明显

这个方法,亲测有效,感谢、。。。。。。。。。。。。

问题1:我对于命令式编程和符号式编程还是优点疑惑。为什么我搜索到符号式编程是程序会定义一些符号(类似数学符号),通过组合和变换,来实现复杂的推理和计算。
问题2:命令式编程、符号式编程和编译型语言和解释型语言有什么关系