<p>tensorflow - KeyError in nächster</p>

Erstellt am 10. Juni 2016  ·  3Kommentare  ·  Quelle: tensorflow/tensorflow

Wenn ich diesen Code auf einem kleinen Korpus ausführe, erhalte ich einen Schlüsselfehler, da dieser Schlüssel nicht in dict ist und Korpusvokabular auch nicht so groß ist.

sim = similarity.eval()
for i in xrange(valid_size):
                valid_word = reverse_dictionary[valid_examples[i]]
                print("--",valid_word)
                top_k = 5 # number of nearest neighbors

                nearest = (-sim[i, :]).argsort()[1:top_k+1]
                print(nearest)
                log_str = "Nearest to %s:" % valid_word
                print(log_str)
                for k in xrange(top_k):

                  close_word = reverse_dictionary[nearest[k]]

Meine Ausgabe ist wie folgt:

Average loss at step  0 :  139.830688477
[[ 0.01613899 -0.06088334 -0.043384   ...,  0.02021606 -0.10094199
   0.16063547]
 [ 1.00000012  0.10277888 -0.20193034 ..., -0.04780241  0.07802841
   0.13258868]
 [ 0.09824251 -0.17075592  0.10143445 ...,  0.09903113 -0.08740355
  -0.00371696]
 ..., 
 [-0.01591019  0.02056946  0.09188825 ..., -0.0506176   0.07684846
   0.06354721]
 [-0.06749535  0.0028128  -0.09138335 ...,  0.09473826  0.04847325
  -0.00853895]
 [ 0.01795161  0.01850585  0.04632751 ...,  0.11854959  0.11196665
  -0.00684015]]
16
[-0.01613899  0.06088334  0.043384   ..., -0.02021606  0.10094199
 -0.16063547]
<type 'numpy.ndarray'>
[ 31 113 118 ..., 650 353 233]
-- using
[113 118 555 298 150]
Nearest to using:
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-129-cf006e08ddb8> in <module>()
     87                 for k in xrange(top_k):
     88 
---> 89                   close_word = reverse_dictionary[nearest[k]]
     90                   log_str = "%s %s," % (log_str, close_word)
     91                 print(log_str)

KeyError: 555

vokab_länge = 1155
Batch_Größe = 16
Einbettungsgröße = 128
skip_window = 5
num_skips = 4

gültige_größe = 16
valid_window = 100
valid_examples = np.random.choice(valid_window, valid_size, replace=False)
num_sampled =64

Kann bitte jemand helfen?

awaiting response

Hilfreichster Kommentar

Hallo Rahul,

Ich hatte genau das gleiche Problem wie Sie, bis ich die Größe des Arrays "reverse_dictionary" mit "print(len(reverse_dictionary))" überprüft habe, kurz bevor der Fehler auftrat.

Ihre Zeile "vocabulary_size = 50000" sollte niedriger eingestellt werden. Ich habe es auf den Wert gesetzt, der durch das Drucken der Länge von "reverse_dictionary" zurückgegeben wurde, und hatte keine Probleme mehr.

Ich hoffe das hilft.

Alle 3 Kommentare

Hallo Rahul,

Ich hatte genau das gleiche Problem wie Sie, bis ich die Größe des Arrays "reverse_dictionary" mit "print(len(reverse_dictionary))" überprüft habe, kurz bevor der Fehler auftrat.

Ihre Zeile "vocabulary_size = 50000" sollte niedriger eingestellt werden. Ich habe es auf den Wert gesetzt, der durch das Drucken der Länge von "reverse_dictionary" zurückgegeben wurde, und hatte keine Probleme mehr.

Ich hoffe das hilft.

das hat sehr geholfen!!!!!! @tcheightyeight

Automatisches Schließen aufgrund fehlender Aktivitäten in letzter Zeit. Bitte öffnen Sie wieder, wenn weitere Informationen verfügbar sind.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen