3

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)  

私のトレーニングとテストの配列形状は次のとおりです。

100000 のトレーニング文と 10000 のテスト文があり、各文には 18 語が含まれています。出力するクラス数は 998 です。

真のテストエラーが発生しない理由を誰かが提案できますか?

4

0 に答える 0