我有以下型号:
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)
答案 0 :(得分:1)
我设法在cuda上引入了一些计算,并进行了以下更改: - 首先将模型和cuda的标准放在:
model=model:cuda()
criterion=criterion:cuda()
- 第二,我建立了一个cuda张量表,我作为目标提供了:
local targetscudatable={}
for i = 1, #targets do
table.insert(targetscudatable, targets[i]:cuda())
end
然后它可以工作,但我想知道我是否可以将更多数据发送到cuda,就像输入一样。无论如何,我已经有了500%的速度提升,并且不差
答案 1 :(得分:0)
您忘了要求 cunn 套餐:
require 'cunn'