1

我有以下模型:

model = nn.Sequential()
model:add(nn.Sequencer(nn.LookupTable(nIndex, hiddenSize)))
model:add(nn.Sequencer(nn.FastLSTM(hiddenSize, hiddenSize, rho)))
model:add(nn.Sequencer(nn.Linear(hiddenSize, nIndex)))
model:add(nn.Sequencer(nn.LogSoftMax()))

然后我通过以下方式将模型放在 cuda 上:

model:cuda()

我尝试转发一个输入(cudatensor),它会中断。

FastLSTM 与 cuda 不兼容吗?

消息:

[string "local f = function() return targets:cuda() en..."]:1: attempt to  call method 'cuda' (a nil value)
4

2 回答 2

1

我设法通过以下更改在 cuda 上引入了一些计算: - 首先将模型作为 cuda 的标准:

model=model:cuda()
criterion=criterion:cuda()

-second 我建立了一个 cuda 张量表,我通过以下方式提供作为目标:

local targetscudatable={}
for i = 1, #targets do
  table.insert(targetscudatable, targets[i]:cuda())
end

然后它可以工作,但我想知道我是否可以将更多数据发送到 cuda,比如输入。无论如何,我已经提高了 500% 的速度,这还不错

于 2015-11-21T15:55:35.190 回答
0

你忘了要求cunn包:

require 'cunn'

于 2016-02-29T18:39:17.543 回答