我是lua的新手,只是找不到一个非常简单的问题的答案。
我想打印一些与Word2Vec风格的字嵌入相对应的张量。每行应以一个单词开头,后跟张量元素。我有以下代码:
function Word2Vec:print_semantic_space()
if self.word_vecs_norm == nil then
self.word_vecs_norm = self:normalize(self.word_vecs.weight:double())
end
for word,_ in pairs(self.vocab) do
vec=self.word_vecs_norm[self.word2index[word]]
vec:resize(vec:size(1),1)
vec=vec:t()
io.write(word," ",tostring(vec))
end
end
这一切都很好,但我也一直打印张量类型和尺寸:
usually -0.2063 0.5654 0.1447 0.2765 -0.3903 0.2646 0.2254 0.5064 -0.1009 -0.0260
[torch.DoubleTensor of size 1x10]
go -0.5896 0.1330 0.1361 -0.0193 -0.5612 0.3529 0.3683 0.0141 0.0447 -0.1963
[torch.DoubleTensor of size 1x10]
我怎么能告诉lua不要退回这个类型?像这样:
usually -0.2063 0.5654 0.1447 0.2765 -0.3903 0.2646 0.2254 0.5064 -0.1009 -0.0260
go -0.5896 0.1330 0.1361 -0.0193 -0.5612 0.3529 0.3683 0.0141 0.0447 -0.1963
很抱歉,如果有答案,我没有搜索到正确的关键字。我仍然是lua概念的新手。
答案 0 :(得分:0)
您可以编写自己的转储功能,例如:
local dump = function(vec)
vec = vec:view(vec:nElement())
local t = {}
for i=1,vec:nElement() do
t[#t+1] = string.format('%.4f', vec[i])
end
return table.concat(t, ' ')
end
并使用它代替tostring
。