2016-06-07 41 views
0

考慮下面的代碼,第二行需要大約一分鐘的時間才能完成,並且對於每個程序,我都有下面的行,所以我怎麼寧可服務nlp對象而不是每個加載它來自各種計劃的時間?在內存中爲其他python程序提供python對象

import spacy 
nlp = spacy.load('en') 

理想情況下是這樣的:

nlp=loadservedobject(url) 

的NLP對象是大約> 2GB因此不找系列化的解決方案。 我寧願在內存nlp對象中服務,但不知道如何圍繞python對象創建服務器?

理想情況下,服務器應該是多線程的。

回答

0

你在找什麼叫做序列化。這個python包被稱爲pickle。你可以在這裏找到的文檔: https://docs.python.org/2/library/pickle.html

// save.py 

// Save a dictionary into a pickle file. 
import pickle 
favorite_color = { "lion": "yellow", "kitty": "red" } 
pickle.dump(favorite_color, open('save.p', 'wb')) 

// load.py 

// Load the dictionary back from the pickle file. 
import pickle 
favorite_color = pickle.load(open('save.p', 'rb')) 
// favorite_color is now { "lion": "yellow", "kitty": "red" } 
+0

不,它是一個大對象> 2 GB和國內該操作僅做反序列化。 – stackit

+0

@stackit然後也許看看https://docs.python.org/2/library/mmap.html? –

+0

@stackit與MAP_SHARED –

相關問題