Infersent: Fehler beim Ausführen von encoder/play.ipynb

Erstellt am 7. Juli 2017  ·  3Kommentare  ·  Quelle: facebookresearch/InferSent

Wenn ich folgende Zeilen ausführe:

Einbettungen = model.encode(Sätze, bsize=128, tokenize=False, verbose=True)
print('nb Sätze encoded : {0}'.format(len(embeddings)))

Ich bekomme folgenden Fehler:

Anzahl gespeicherte Wörter: 128201/130068 (98,56 %)

RuntimeError Traceback (letzter Aufruf zuletzt)
in()
----> 1 embeddings = model.encode(Sätze, bsize=128, tokenize=False, verbose=True)
2 print('nb Sätze encoded : {0}'.format(len(embeddings)))

/home/leena/Downloads/InferSent-master/encoder/models.py in encode(self,sätze, bsize, tokenize, verbose)
177 wenn self.use_cuda:
178 Batch = Batch.cuda()
--> 179 batch = self.forward((batch, lengths[stidx:stidx + bsize])).data.cpu().numpy()
180 Einbettungen.append(Batch)
181 Einbettungen = np.vstack(Einbettungen)

/home/leena/Downloads/InferSent-master/encoder/models.py in forward(self, sent_tuple)
48
49 # Sortierung nach Länge aufheben
---> 50 idx_unsort = Torch.from_numpy(idx_unsort).cuda() if self.use_cuda sonst Torch.from_numpy(idx_sort)
51 sent_output = sent_output.index_select(1, Variable(idx_unsort))
52

RuntimeError: from_numpy erwartet ein np.ndarray, hat aber eine Fackel.LongTensor

Versionsdetails:
'3.6.0 |Anaconda benutzerdefinierte (64-Bit)| (Standard, 23. Dezember 2016, 12:22:00) \n[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]'
In [ ]:
Fackel-0.1.12.post2

Hilfreichster Kommentar

Es gibt einen kleinen Fehler. Linie Nr. 50 sollte sein:

idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_unsort)

Anstatt von,

idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_sort)

In der else-Bedingung sollte es torch.from_numpy(idx_unsort) und nicht torch.from_numpy(idx_sort) . idx_sort ist eine Fackel.LongTensor. Siehe Zeile Nr. 41.

Alle 3 Kommentare

Es gibt einen kleinen Fehler. Linie Nr. 50 sollte sein:

idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_unsort)

Anstatt von,

idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_sort)

In der else-Bedingung sollte es torch.from_numpy(idx_unsort) und nicht torch.from_numpy(idx_sort) . idx_sort ist eine Fackel.LongTensor. Siehe Zeile Nr. 41.

Danke Wasi. Gelöst in 9357c2b6c6eb38cd5bdfd69ce6ab88a39973a399 (Fehler aus dem letzten Commit 260bfd45c915529dd5ab75a55d3aa3b94432dee0).

Das funktioniert jetzt. Dankeschön.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

dami23 picture dami23  ·  9Kommentare

Tiriar picture Tiriar  ·  4Kommentare

antoinecomp picture antoinecomp  ·  3Kommentare

Priya22 picture Priya22  ·  7Kommentare

8carlosf picture 8carlosf  ·  6Kommentare