我正在Theano实施RNN,我很难训练它.它甚至没有记住训练语料库.我的错误很可能是由于我不能完全理解Theano如何应对随时间推移的反向传播.现在,我的代码非常简单:
grad_params = theano.tensor.grad(cost, params)
Run Code Online (Sandbox Code Playgroud)
我的问题是:鉴于我的网络是经常性的,这会自动将架构展开为前馈吗?一方面,这个例子正是我正在做的事情.另一方面,这个帖子让我觉得我错了.
如果它确实为我做了展开,我怎么能截断呢?我可以看到,从文档中有一种方法,scan但我无法想出代码来做到这一点.
如何通过索引向量索引Theano中的矩阵?
更确切地说,说:
期望的结果是[[1,0,0],[0,0,1]].
我提到我的目标是将索引列表转换为单热行向量矩阵,其中索引表示热点位置.我最初的尝试是让A = theano.tensor.eye并使用索引向量对其进行索引.
在Theano中将索引向量转换为零和1的矩阵的最佳(优雅和有效)方法是什么,其中每一行都是索引的一个N表示?
v = t.ivector() # the vector of indices
n = t.scalar() # the width of the matrix
convert = <your code here>
f = theano.function(inputs=[v, n], outputs=convert)
Run Code Online (Sandbox Code Playgroud)
例:
n_val = 4
v_val = [1,0,3]
f(v_val, n_val) = [[0,1,0,0],[1,0,0,0],[0,0,0,1]]
Run Code Online (Sandbox Code Playgroud)