如果我想更改RNN小区(例如GRU小区)中的计算规则,我该怎么办?考虑到效率问题,我不想通过for或while循环实现它。我查看了源代码……
是的,你实现它“通过for或while循环”。 由于Pytorch 1.0有JIT https://pytorch.org/docs/stable/jit.html 这很好用(最好使用PyTorch的最新git版本,因为最近改进了JIT),并且取决于你的网络和实现,可以像原生的PyTorch C ++实现一样快(但仍然比CuDNN慢)。
你可以看到示例实现 https://github.com/pytorch/benchmark/blob/master/rnns/fastrnns/custom_lstms.py