Попытка избежать загрузки большого набора данных при каждом запуске файла .py - PullRequest
1 голос
/ 05 мая 2020

Я застрял на простом фрагменте кода.

Я хочу загрузить модель перчатки (большой набор векторных данных), только если она еще не была загружена; ie, я не хочу ждать, пока он перезагружается каждый раз, когда я запускаю свой .py файл (каждый раз это может занять некоторое время). Однако каждый раз, когда я запускаю скрипт, он загружается так, как будто никогда раньше не запускался.

Я использую Spyder 4 в виртуальной среде conda с Python 3.6.10 на Ma c.

Вот три вещи, которые я пробовал:

# Check if gloVe already loaded. If yes, skip loading again. 
try:
    gloveModel
except NameError:
    # Load gloVe pre-trained vectors. 
    # Each key is a word; each val is a np array of length 50. 
    filename = 'glove_twitter_50d.txt'
    print("gloVe vectors loading . . .")
    foo = open(filename,'r')
    gloveModel = {}
    for line in foo:
        splitLines = line.split()
        word = splitLines[0]
        wordEmbedding = np.array([float(value) for value in splitLines[1:]])
        gloveModel[word] = wordEmbedding
    print(len(gloveModel),"gloVe loaded.")
else:
    print("gloVe already loaded.")

А также

   # Check if gloVe already loaded. If yes, skip loading again. 
try:
    assert('gloveModel' in locals() or 'gloveModel' in globals())
except AssertionError:
    # Load gloVe pre-trained vectors. 
    # Each key is a word; each val is a np array of length 50. 
    filename = 'glove_twitter_50d.txt'
    print("gloVe vectors loading . . .")
    foo = open(filename,'r')
    gloveModel = {}
    for line in foo:
        splitLines = line.split()
        word = splitLines[0]
        wordEmbedding = np.array([float(value) for value in splitLines[1:]])
        gloveModel[word] = wordEmbedding
    print(len(gloveModel),"gloVe vectors loaded.")
else:
   print("gloVe already loaded.")

И еще

# Check if gloVe already loaded. If yes, skip loading again. 
try:
    present = 'gloveModel' in locals() or 'gloveModel' in globals()
    if not present:
        raise ValueError
except ValueError:
    # Load gloVe pre-trained vectors. 
    # Each key is a word; each val is a np array of length 50. 
    filename = 'glove_twitter_50d.txt'
    print("gloVe vectors loading . . .")
    foo = open(filename,'r')
    gloveModel = {}
    for line in foo:
        splitLines = line.split()
        word = splitLines[0]
        wordEmbedding = np.array([float(value) for value in splitLines[1:]])
        gloveModel[word] = wordEmbedding
    print(len(gloveModel),"gloVe vectors loaded.")
else:
   print("gloVe already loaded.")

Заранее спасибо, Я ценю это

...