2016-05-07 18 views
5

Tôi đang sử dụng Keras và tôi muốn sử dụng logloss làm chỉ số để đào tạo. Làm thế nào tôi có thể vượt qua điều đó vào mô hình của tôi?Làm thế nào để sử dụng log_loss làm số liệu trong Keras?

Mã của tôi là như sau:

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

Làm thế nào tôi có thể vượt qua log_loss ở vị trí chính xác?

Trả lời

15

Bạn đã có: loss='binary_crossentropy' chỉ định rằng mô hình của bạn nên tối ưu hóa mất nhật ký để phân loại nhị phân. metrics=['accuracy'] chỉ định độ chính xác cần được in ra, nhưng mất bản ghi cũng được in ra theo mặc định.

Các vấn đề liên quan