测试精度始终超过99%

时间:2016-03-03 02:02:29

标签: theano keras lstm language-model

我正在尝试使用theano / keras中的LSTM实现语言模型。我的网络运行良好,我也看到训练损失减少,但即使我不长时间训练我的网络,测试精度也始终高于99%。 我使用了word2vec向量并在嵌入层中嵌入了权重。我的网络看起来像:

model = Graph()  
model.add_input(name='input', input_shape=(n_train,), dtype=int)  
model.add_node(Embedding(output_dim=rnn_dim, input_dim=n_symbols, weights=[embedding_weights]),name = 'embedding',input='input')  
model.add_node(LSTM(output_dim=dense_dim,input_dim=rnn_dim), name='forward', input='embedding')  
model.add_node(Dropout(0.5), name='dropout', input='forward')  
model.add_node(Dense(output_size, activation='softmax'), name='softmax', input='dropout')  
model.add_output(name='output', input='softmax')  

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.99, nesterov=True)  
model.compile(sgd, loss={'output': 'categorical_crossentropy'})  
print("Train...")  
model.fit({'input': X_train,'output': y_train},
      batch_size=128,
      nb_epoch=1,verbose=1)  

我的训练和测试阵列形状是: X_train形状:(100000,18) X_test形状:(10000,18) y_train形状:(100000,998) y_test形状:(10000,998)

其中有100000个训练和10000个测试句子,每个句子包含18个单词。输出的类数是998.

有人能说明为什么我可能没有得到真正的测试错误吗?

0 个答案:

没有答案