如何在不使用扫描的情况下在Theano中堆叠矢量?

如何在不使用扫描的情况下在Theano中堆叠矢量?,第1张

概述我使用theano.scan创建像这样的上下文的堆叠向量: Y_, scan_updates = theano.scan(fn=lambda *args,**kwargs: T.concatenate(args, axis=0),outputs_info=None, sequences=dict(input = Y_, taps=range(-left_ctx,right_ctx+1))) 扫描 我使用theano.scan创建像这样的上下文的堆叠向量:

Y_,scan_updates = theano.scan(fn=lambda *args,**kwargs: T.concatenate(args,axis=0),outputs_info=None,sequences=dict(input = Y_,taps=range(-left_ctx,right_ctx+1)))

扫描似乎很慢,这会减慢整个处理过程.
在信号处理中,这是相当标准的 *** 作,所以我考虑创建一个特殊的 *** 作,就这样.
不幸的是,我还需要这个 *** 作的GPU实现和毕业,这对我来说看起来像是一个很长的镜头.
你能踢我正确的方向吗?我已经阅读了扩展theano文档,但仍然没有帮助.

例:

的情况下

left_ctx=right_ctx=1

矩阵:

[[0.0,0.1],[1.0,1.1],[2.0,2.1],[3.0,3.1]]

将被转换为

[[0.0,0.1,1.0,1.1,2.0,2.1,3.0,3.1]]

谢谢
Ĵ

解决方法 所以这个问题可以通过这种方式解决.现在工作.

Y_= T.concatenate([Y_[c:Y_.shape[0]+c-left_ctx-right_ctx] for c in range(left_ctx+right_ctx+1)],axis=1)
总结

以上是内存溢出为你收集整理的如何在不使用扫描的情况下在Theano中堆叠矢量?全部内容,希望文章能够帮你解决如何在不使用扫描的情况下在Theano中堆叠矢量?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197126.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存