Я застрял на простом фрагменте кода.
Я хочу загрузить модель перчатки (большой набор векторных данных), только если она еще не была загружена; 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.")
Заранее спасибо, Я ценю это