Я пытаюсь использовать word2vec для проекта и после тренировки я получаю:Gensim Word2vec хранения атрибут syn0norm
INFO: не хранить атрибут syn0norm
Есть ли способ, которым я мог бы спасти syn0norm.
Как это сделать?
спасибо.
Я пытаюсь использовать word2vec для проекта и после тренировки я получаю:Gensim Word2vec хранения атрибут syn0norm
INFO: не хранить атрибут syn0norm
Есть ли способ, которым я мог бы спасти syn0norm.
Как это сделать?
спасибо.
Это нормально - вам не нужно хранить массив syn0norm.
Он вычисляется в процедуре init_sims и только по мере необходимости. После тренировки это на самом деле не определено, поэтому тренироваться нечем.
Когда вы запрашиваете модель (например, most_similar), она вызывает init_sims, которая проверяет, определена ли опция syn0norm. Если не присваивает его с помощью следующей строки:
self.syn0norm = (self.syn0/sqrt((self.syn0 ** 2).sum(-1))[..., newaxis]).astype(REAL)
EDIT:
После просмотра кода (для других вещей), я вижу, что вы можете указать, если вы хотите сохранить syn0norm - есть игнорирования установки который по умолчанию [ «syn0norm»], так что следующее сохранить все:
In [239]: model.save('test',ignore=[])
2015-03-17 09:07:54,733 : INFO : saving Word2Vec object under test, separately None
2015-03-17 09:07:54,734 : INFO : storing numpy array 'syn0' to test.syn0.npy
2015-03-17 09:08:15,908 : INFO : storing numpy array 'table' to test.table.npy
2015-03-17 09:08:17,908 : INFO : storing numpy array 'syn1neg' to test.syn1neg.npy
2015-03-17 09:08:35,037 : INFO : storing numpy array 'syn1' to test.syn1.npy
2015-03-17 09:09:03,766 : INFO : storing numpy array 'syn0norm' to test.syn0norm.npy
проблема заключается в том, что, как правило, будет занимать меньше времени, чтобы вычислить, чем сохранить и перезагрузить.
Я не уверен, что полностью понял это. Для меня файл '.syn0.npy' сохраняется автоматически, если учебный корпус достаточно велик, даже я ничего не указываю. Необходим ли этот файл или это просто дополнительная сериализация одной и той же модели? – stpk