Ketika saya menjalankan baris berikut:
embeddings = model.encode(kalimat, bsize=128, tokenize=False, verbose=True)
print('kalimat nb dikodekan : {0}'.format(len(embeddings)))
Saya mendapatkan kesalahan berikut:
RuntimeError Traceback (panggilan terakhir terakhir)
----> 1 embeddings = model.encode(kalimat, bsize=128, tokenize=False, verbose=True)
2 print('kalimat nb dikodekan : {0}'.format(len(embeddings)))
/home/leena/Downloads/InferSent-master/encoder/models.py dalam encode (diri, kalimat, bsize, tokenize, verbose)
177 jika self.use_cuda:
178 batch = batch.cuda()
--> 179 batch = self.forward((batch, lengths[stidx:stidx + bsize])).data.cpu().numpy()
180 embeddings.append(batch)
181 embeddings = np.vstack(embeddings)
/home/leena/Downloads/InferSent-master/encoder/models.py di depan (mandiri, sent_tuple)
48
49 # Hapus pengurutan berdasarkan panjang
---> 50 idx_unsort = torch.from_numpy(idx_unsort).cuda() jika self.use_cuda lain torch.from_numpy(idx_sort)
51 sent_output = sent_output.index_select(1, Variabel(idx_unsort))
52
RuntimeError: from_numpy mengharapkan np.ndarray tetapi mendapat torch.LongTensor
Detail versi:
'3.6.0 | Kustom Anaconda (64-bit)| (default, 23 Des 2016, 12:22:00) \n[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]'
Di dalam [ ]:
obor-0.1.12.post2
Ada bug kecil. Nomor baris 50 seharusnya:
idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_unsort)
dari pada,
idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_sort)
Dalam kondisi lain, seharusnya torch.from_numpy(idx_unsort)
daripada torch.from_numpy(idx_sort)
. idx_sort
adalah obor.LongTensor. Lihat nomor baris. 41.
Memang, terima kasih Wasi. Dipecahkan dalam 9357c2b6c6eb38cd5bdfd69ce6ab88a39973a399 (bug yang berasal dari komit baru-baru ini 260bfd45c915529dd5ab75a55d3aa3b94432dee0).
Ini bekerja sekarang. Terima kasih.
Komentar yang paling membantu
Ada bug kecil. Nomor baris 50 seharusnya:
idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_unsort)
dari pada,
idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_sort)
Dalam kondisi lain, seharusnya
torch.from_numpy(idx_unsort)
daripadatorch.from_numpy(idx_sort)
.idx_sort
adalah obor.LongTensor. Lihat nomor baris. 41.