在keras中的word2vec训练期间无效的参数错误
尽管vocab的大小是index+1
请参见下面的网络架构摘要:
__________________________________________________________________________________________________ Layer (type) Output Shape Param # Connected to ================================================================================================== input_11 (InputLayer) (None, 1) 0 __________________________________________________________________________________________________ input_12 (InputLayer) (None, 1) 0 __________________________________________________________________________________________________ embedding_11 (Embedding) (None, 1, 300) 1138500 input_11[0][0] __________________________________________________________________________________________________ embedding_12 (Embedding) (None, 1, 300) 1138500 input_12[0][0] __________________________________________________________________________________________________ dot_6 (Dot) (None, 1, 1) 0 embedding_11[0][0] embedding_12[0][0] __________________________________________________________________________________________________ reshape_6 (Reshape) (None, 1) 0 dot_6[0][0] __________________________________________________________________________________________________ activation_5 (Activation) (None, 1) 0 reshape_6[0][0] ================================================================================================== Total params: 2,277,000 Trainable params: 2,277,000 Non-trainable params: 0
这是代码的一部分:
n_epochs=5
for epoch in range(n_epochs):
loss=0.
for i ,doc in enumerate(X_train_tokens):
data,labels=skipgrams(sequence=doc,vocabulary_size=vocab_size,window_size=4)
x=[np.array(x) for x in zip(*data)]
y=np.array(labels,dtype=np.int32)
if x:
loss +=model.train_on_batch(x,y)
print('Epoch:',epoch,'\t loss:',loss)
出现以下错误
从内存中删除基础状态对象,否则它将保留 活着,因为从追溯中可以引用状态 由于InvalidArgumentError:indexs [7,0] = 3795不在[0,3795)