2016-05-07 14 views
5

Używam Keras i chcę używać logos jako danych do szkolenia. Jak mogę przekazać to do mojego modelu?Jak używać log_loss jako danych w Keras?

Mój kod wygląda następująco:

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]) 

Jak mogę przekazać log_loss zamiast dokładnością?

Odpowiedz

15

Już jesteś: loss='binary_crossentropy' określa, że ​​Twój model powinien zoptymalizować utratę logów dla klasyfikacji binarnej. metrics=['accuracy'] określa, że ​​dokładność powinna zostać wydrukowana, ale utrata dziennika jest również drukowana domyślnie.