Neural network 如何修改pytorch中的rnn单元?

Neural network 如何修改pytorch中的rnn单元?,neural-network,pytorch,recurrent-neural-network,natural-language-processing,Neural Network,Pytorch,Recurrent Neural Network,Natural Language Processing,如果我想更改RNN单元(例如GRU单元)中的计算规则,我应该怎么做? 考虑到效率问题,我不想通过for或while循环实现它。 我看过pytorch的源代码,但似乎rnn单元的主要组件是用c代码实现的,我无法找到和修改。 您可以通过一个示例来回答这个问题:在没有现有版本的情况下实现GRU单元 谢谢~是的,您可以“通过for或while循环”实现它。 由于PyTrac 1有JIT工作得很好(可能更好地使用最新的GITI版本的PyTrac,因为最近改进了JIT),并且依赖于您的网络和实现,就像在本地

如果我想更改RNN单元(例如GRU单元)中的计算规则,我应该怎么做?
考虑到效率问题,我不想通过for或while循环实现它。
我看过pytorch的源代码,但似乎rnn单元的主要组件是用c代码实现的,我无法找到和修改。 您可以通过一个示例来回答这个问题:在没有现有版本的情况下实现GRU单元

谢谢~

是的,您可以“通过for或while循环”实现它。 由于PyTrac 1有JIT工作得很好(可能更好地使用最新的GITI版本的PyTrac,因为最近改进了JIT),并且依赖于您的网络和实现,就像在本地的PyTrac C++实现一样快(但仍然比CuDNN慢)。p> 您可以在

中看到示例实现。是的,您可以“通过for或while循环”实现它。 由于PyTrac 1有JIT工作得很好(可能更好地使用最新的GITI版本的PyTrac,因为最近改进了JIT),并且依赖于您的网络和实现,就像在本地的PyTrac C++实现一样快(但仍然比CuDNN慢)。p>
您可以在

中看到示例实现“您可以通过一个示例回答这个问题:在不使用现有版本的情况下实现GRU单元。”
“\_(ツ)_/“
还有其他愿望吗?…如果没有“for”或“while”循环,这种普通的方式将导致比标准GRU慢至少10倍。而且我使用的“GRU单元”可能不明确。实际上,我想修改单元以实现GRU层。“你可以通过一个示例来回答这个问题:在没有现有版本的情况下实现GRU单元。”
”\_(ツ)_/“
任何其他愿望?…如果没有“for”或“while”循环,这种普通的方式将导致比标准GRU和“GRU单元”慢至少10倍的速度”实际上,我想修改单元格来实现GRU层。谢谢。我用BATCHSIZE=64,TimeStase= 512,EndoPosiDIM=1024,OutPuxDIM=128。RnnType=GRU。在1080 TI上运行10次,只考虑前向过程。循环的NIVE需要516Ms,循环的JIT类需要506MS,GRUAPI需要204MS。p对时间步长度非常敏感。如果我们有2048个时间步,对于循环慢4次,gru api版本只慢3次。您没有禁用CuDNN,对吗?nn.gru Pytorch类调用CuDNN,这就是为什么它这么快。尝试
torch.backends.CuDNN.enabled=False
,nn.gru应该慢得多,接近python循环h JIT。不,我没有……这是一个悲伤的故事~ CuDNN非常感谢~谢谢你。我用BoTCHSIZE=64测试,TimeStase= 512,IpPudioDIM=1024,OutPuxDIM=128。RnnType=GRU。在1080个TI上运行10次,只考虑前向过程。循环的NIVE需要516Ms,一个循环的JIT类需要506MS,GRUAPI需要204Ms。oop对时间步长非常敏感。如果我们有2048个时间步长,对于循环慢4次,gru api版本只慢3次。您没有禁用CuDNN,对吗?nn.gru Pytorch类调用CuDNN,这就是为什么它这么快。尝试使用
torch.backends.CuDNN.enabled=False
,nn.gru应该慢得多,接近python循环w伊思·吉特。不,我没有……这就是悲伤的故事~CuDNN真的很坚强~~