Python 在Theano上自定义操作/功能

Python 在Theano上自定义操作/功能,python,theano,Python,Theano,我是Theano图书馆的新手,该图书馆用于在GPU设备上进行深入学习。我注意到有几个内置操作可以支持gpu计算(我想它们是专门以支持gpu的方式编写的): 1.如果我使用python的内置函数sum()而不是T.sum(),有什么区别。sum()是否仍然有效,但可能会更慢 假设sum()不适用于gpu计算,那么如果我需要任何在gpu上可行的操作/函数,我需要以这种方式实现它。e、 我要计算sin(x),其中x是向量或矩阵,并存储在GPU内存中。是否有任何关于实现可以在gpu设备上运行的sin(x

我是Theano图书馆的新手,该图书馆用于在GPU设备上进行深入学习。我注意到有几个内置操作可以支持gpu计算(我想它们是专门以支持gpu的方式编写的):

1.如果我使用python的内置函数sum()而不是T.sum(),有什么区别。sum()是否仍然有效,但可能会更慢

  • 假设sum()不适用于gpu计算,那么如果我需要任何在gpu上可行的操作/函数,我需要以这种方式实现它。e、 我要计算sin(x),其中x是向量或矩阵,并存储在GPU内存中。是否有任何关于实现可以在gpu设备上运行的sin(x)的提示?(这可能不合适或不容易回答)

  • 我无法理解T.grad()。T.grad如何对任何给定的光滑符号函数进行符号计算?我对此很好奇


  • 在theano中,您必须使用
    T.sum()、T.neq()、T.argmax()、T.grad()
    进行符号计算,而不使用变量,如
    T.matrix
    。例如,不能使用内置的
    sum()
    。 如果你使用theano,你必须遵循theano自己的方法,因为theano使用不同形式的计算来利用gpu的架构

    但是,如果要使用
    sum()
    可以使用它进行计算,然后创建一个
    theano.shared
    变量来存储结果,这样可以在运行时将其存储在gpu内存中

    关于T.grad(),也许你应该问问theano开发者: 然而,我认为当theano运行时,它可以利用gpu的计算能力,使用实际变量计算函数的梯度运行时。 我希望这能有所帮助


    很高兴能帮上忙!如果您觉得我的回答对您有用,请随时接受。:-)

    谢谢!从您所说的,似乎我们只能使用Theano实现的操作/函数进行GPU计算。它可能限制了机器学习的可能用途。也许-实际上肯定-使其更难,但同时它通过优化、利用gpu架构扩展了机器学习的可能用途,从而大大加快了计算速度,因为在ML中,关键问题是计算时间太长。如果我的答案有用,请也单击绿色的ok符号。:)
     import theano.tensor as T
     T.sum(), T.neq(), T.argmax(),T.grad()