2016-05-07 4 views
5

私はKerasを使用しています。トレーニング用のメトリックとしてloglossを使用したいと思います。どのように私のモデルにそれを渡すことができますか?次のようにKerasでlog_lossをメトリックとして使用するにはどうすればよいですか?

私のコードは次のとおりです。

model = Sequential() 
model.add(Dense(output_dim=1000, input_dim=390, init='uniform')) 
model.add(Activation("relu")) 
model.add(Dropout(0.5)) 
model.add(Dense(output_dim=500, input_dim=1000, init="lecun_uniform")) 
model.add(Activation("relu")) 
model.add(Dropout(0.5)) 
model.add(Dense(output_dim=10, input_dim=300, init="lecun_uniform")) 
model.add(Activation("sigmoid")) 
model.add(Dropout(0.5)) 
model.add(Dense(output_dim=200, input_dim=10, init="lecun_uniform")) 
model.add(Activation("relu")) 
model.add(Dropout(0.5)) 
model.add(Dense(output_dim=100, input_dim=200, init ="glorot_normal")) 
model.add(Activation("relu")) 
model.add(Dropout(0.5)) 
model.add(Dense(output_dim=50, input_dim=100, init ="he_normal")) 
model.add(Activation("sigmoid")) 
model.add(Dropout(0.5)) 
model.add(Dense(output_dim=2, input_dim=50, init = "normal")) 
model.add(Activation("softmax")) 
model.compile(loss='binary_crossentropy',optimizer='rmsprop', metrics=['accuracy']) 

model.fit(train.values, y1, nb_epoch=10, 
      batch_size=50000, verbose=2,validation_split=0.3, class_weight={1:0.96, 0:0.04}) 


proba = model.predict_proba(train.values) 
log_loss(y, proba[:,1]) 

はどのようにして、精度の代わりにlog_loss渡すことができますか?

答えて

15

あなたはすでに:loss='binary_crossentropy'は、モデルがバイナリ分類のログ損失を最適化するように指定しています。 metrics=['accuracy']は、精度を表示するように指定していますが、ログの消失もデフォルトで表示されます。

関連する問題