2016-03-28 25 views
0

türünde yazdırma yazmadan tensör yazınız. Yeni olduğum için çok yeni ve cevabı bu kadar basit bir soru olarak görmüyorum.lua/torch içinde,

Word2Vec stilindeki kelime sıralamasına karşılık gelen bazı tensörleri yazdırmak istiyorum. Her satır bir kelime ile başlamalı, ardından tensör elemanları kullanılmalıdır. Aşağıdaki kod var: Bu ince ve iyi hepsi

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 

ama tensör tipi ve boyutu çok basılmış elde tutmak:

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] 

nasıl türü dönmek değil lua söyleyebilir ? Bunun gibi:

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 

Cevabınız orada olsaydı ve doğru anahtar kelimeleri aramadım. Ben hala lua'nın kavramları için yeniyim.

cevap

0

Kendi dökümü işlevini ör .:

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 

yazma Ve tostring yerine kullanabilirsiniz.

+0

Harika, bu bir rüya gibi çalıştı! Üzgünüm, + 1'lemediğin için, bana izin vermeyecek ... – linguist

İlgili konular