2017-12-21 11 views
0

Ich möchte ein RNN-Modell mit Keras, um Sätze zu klassifizieren.Nicht genug Speicher bei der Verwendung des Tokenizers in keras.preprocessing.text

Ich habe versucht, den folgenden Code:

docs = [] 
with open('all_dga.txt', 'r') as f: 
    for line in f.readlines(): 
     dga_domain, _ = line.split(' ') 
     docs.append(dga_domain) 

t = Tokenizer() 
t.fit_on_texts(docs) 
encoded_docs = t.texts_to_matrix(docs, mode='count') 
print(encoded_docs) 

aber ein Memory bekam. Es schien, dass ich nicht alle Daten in den Speicher laden konnte. Dies ist die Ausgabe:

Traceback (most recent call last): 
    File "test.py", line 11, in <module> 
    encoded_docs = t.texts_to_matrix(docs, mode='count') 
    File "/home/yurzho/anaconda3/envs/deepdga/lib/python3.6/site-packages/keras/preprocessing/text.py", line 273, in texts_to_matrix 
    return self.sequences_to_matrix(sequences, mode=mode) 
    File "/home/yurzho/anaconda3/envs/deepdga/lib/python3.6/site-packages/keras/preprocessing/text.py", line 303, in sequences_to_matrix 
    x = np.zeros((len(sequences), num_words)) 
MemoryError 

Wenn jemand mit Keras vertraut ist, bitte sagen Sie mir, wie Sie den Datensatz vorverarbeiten.

Vielen Dank im Voraus!

Antwort

0

Es scheint, dass Sie kein Problem haben, die Dokumente zu passen, um das Vokabular von t.fit_on_texts(docs) zu erstellen, da der Fehler unter t.texts_to_matrix(docs, mode='count') aufgetreten ist.

So können Sie die Dokumente in den Reihen

from keras.preprocessing.text import Tokenizer 

t = Tokenizer() 

with open('/Users/liling.tan/test.txt') as fin: 
    for line in fin:  
     t.fit_on_texts(line.split()) # Fitting the tokenizer line-by-line. 

M = [] 

with open('/Users/liling.tan/test.txt') as fin: 
    for line in fin: 
     # Converting the lines into matrix, line-by-line. 
     m = t.texts_to_matrix([line], mode='count')[0] 
     M.append(m) 

konvertieren Aber Sie werden später irgendwann in MemoryError sehen laufen, wenn Ihr Computer nicht die Menge der Daten im Speicher verarbeiten kann.

Verwandte Themen