Python torch:使用net:cuda()和使用cudnn.somemodules有什么区别?

Python torch:使用net:cuda()和使用cudnn.somemodules有什么区别?,python,pytorch,Python,Pytorch,我想知道以下两者之间的区别: 制作神经网络后使用net:cuda(): 在完成神经网络的过程中使用cudnn.somemodules: :cuda()将使用GPU cudnn.xxx将对GPU模型进行一些优化,因此添加后的培训将比仅使用cuda更快 有一个关于cudnn的介绍::cuda()是使用GPU的 cudnn.xxx将对GPU模型进行一些优化,因此添加后的培训将比仅使用cuda更快 有一个介绍cudnn:cuda()是一个将张量移动到GPU以加快运算速度的调用 cudnn是一个cuda优

我想知道以下两者之间的区别:

  • 制作神经网络后使用
    net:cuda()
  • 在完成神经网络的过程中使用
    cudnn.somemodules
  • :cuda()
    将使用GPU

    cudnn.xxx
    将对GPU模型进行一些优化,因此添加后的培训将比仅使用cuda更快

    有一个关于cudnn的介绍:

    :cuda()
    是使用GPU的

    cudnn.xxx
    将对GPU模型进行一些优化,因此添加后的培训将比仅使用cuda更快

    有一个介绍
    cudnn

    cuda()
    是一个将张量移动到GPU以加快运算速度的调用

    cudnn
    是一个cuda优化模块库,类似于
    nn
    。如果在GPU上工作,使用
    cudnn
    anagues会更快,但您的代码将无法移植到CPU设备:

    NVIDIA CUDA深度神经网络(cuDNN)是一个GPU加速的深度神经网络原语库。它提供了DNN应用程序中经常出现的例程的高度调优的实现。这些发行说明描述了cuDNN 8.1.1和早期版本的主要功能、软件增强和改进以及已知问题

    cuda()
    是一个将张量移动到GPU的调用,用于更快地计算运算

    cudnn
    是一个cuda优化模块库,类似于
    nn
    。如果在GPU上工作,使用
    cudnn
    anagues会更快,但您的代码将无法移植到CPU设备:

    NVIDIA CUDA深度神经网络(cuDNN)是一个GPU加速的深度神经网络原语库。它提供了DNN应用程序中经常出现的例程的高度调优的实现。这些发行说明描述了cuDNN 8.1.1和早期版本的主要功能、软件增强和改进以及已知问题

    local net = nn.Sequential()
    net:add(nn.SpatialConvolution(3, 8, 5, 5))
    net:add(nn.View(8*20*20))
    net:add(nn.Linear(8*20*20, 10))
    net:add(nn.LogSoftMax())
    net:cuda()
    
    local net = nn.Sequential()
    net:add(cudnn.SpatialConvolution(3, 8, 5, 5))
    net:add(cudnn.View(8*20*20))
    net:add(cudnn.Linear(8*20*20, 10))
    net:add(cudnn.LogSoftMax())