Было бы показаться , что назначения longs являются атомарными на основе этого метода в AtomicLong.java:
public final void set(long newValue) {
value = newValue;
}
Обратите внимание на отсутствие какой-либо синхронизации.
Вы можете заключить в метрику другую функцию, которая принимает sample_weights
в качестве аргумента:
def auc(weights):
def metric(true_labels, predictions):
auc = tf.metrics.auc(true_labels, predictions, weights=weights)[1]
K.get_session().run(tf.local_variables_initializer())
return auc
return metric
И затем определить дополнительный входной заполнитель, который будет получать веса выборки:
sample_weights = Input(shape=(1,))
[ 116] Ваша модель может быть скомпилирована следующим образом:
model.compile(
optimizer = optimizer,
loss = 'binary_crossentropy',
metrics = ['accuracy', auc(sample_weights)]
)
ПРИМЕЧАНИЕ: Не проверено.