Это структура я имею дело с:Рассол нагрузка: ImportError: Нет модуль с именем doc2vec_ext
src/
processing/
station_level/
train_paragraph_vectors.py
doc2vec_ext.py
word_embeddings_station_level.py
Я тренировался и сохранили модель в word_embeddings_station_level.py
так:
from src.doc2vec_ext import WeightedDoc2Vec
# ...
model = WeightedDoc2Vec(
# ...
)
train(model, vocab, station_sentences, num_epochs)
# Saving the model -> pickles it
model.save(open(model_file, "w"))
Это пока не работает. Тем не менее, я хочу, чтобы загрузить эту модель в train_paragraph_vectors.py
так:
import sys
from src import doc2vec_ext
sys.modules["doc2vec_ext"] = doc2vec_ext
if __name__ == "__main__":
# ...
model = doc2vec_ext.WeightedDoc2Vec.load(station_level_sentence_vectors)
, но я получаю:
Traceback (most recent call last):
File "E:/python/kaggle/seizure_prediction/src/processing/station_level/train_paragraph_vectors.py", line 57, in <module>
model = doc2vec_ext.WeightedDoc2Vec.load(station_level_sentence_vectors)
File "C:\Python27\lib\site-packages\gensim\models\word2vec.py", line 1684, in load
model = super(Word2Vec, cls).load(*args, **kwargs)
File "C:\Python27\lib\site-packages\gensim\utils.py", line 248, in load
obj = unpickle(fname)
File "C:\Python27\lib\site-packages\gensim\utils.py", line 911, in unpickle
return _pickle.loads(f.read())
ImportError: No module named doc2vec_ext
doc2vec_ext.py
Здесь вы можете увидеть, что я просто наследуйте от класса gensim.models.Doc2Vec
и сделайте что-нибудь:
class WeightedDoc2Vec(Doc2Vec):
def __init__(self, dm=1,window=5, f_size=0, size=100, min_count=1, negative=0, dbow_words=1, alpha=0.015, workers=8, seed=42, dm_weighted=False, dm_stacked=False):
Doc2Vec.__init__(self,
# Constructor arguments ..
)
# ...
Я не знаю, в чем проблема. Я попытался сделать sys.modules[]
, но он все еще не работает должным образом.
Как загрузить мою сохраненную модель?
Важно:
Я заметил, что я даже не могу загрузить из того же модуля. Если я попытаюсь загрузить модель в файл, где она была создана (здесь word_embeddings_station_level.py
), она все еще не работает, давая мне ту же ошибку.
Есть ли шанс, что вы используете две разные среды python? Или, может быть, вы запускаете скрипты из разных мест, чтобы находить некоторые модули в текущем каталоге, но не находить их, когда вы находитесь вне этого каталога. Это просто догадки. – daveydave400
Также у вас есть '__init __. Py' файлы в вашей структуре каталогов для каждой директории. В противном случае пакет может не загружать модули должным образом. – daveydave400
@ daveydave400 Ну, чтобы убедиться, что я не слишком много запутался, я добавил строку, чтобы загрузить модель в том же скрипте, который ее создает. Я уверен, что я использую тот же интерпретатор Python, и теперь я убедился, что я запускаю его из того же места. :/ – displayname