Я хочу установить количество ядер, используемых в Keras (с бэкэндом Tensorflow), и использовать собственную метрику auc.Метрика определяется следующим образом:
def auc( true_labels, predictions, weights = None ):
auc = tf.metrics.auc( true_labels, predictions, weights = weights)[1]
K.get_session().run( tf.local_variables_initializer() )
return auc
для установки количества ядер. Я использую следующую функцию:
def tensorFlowSetNumThreads( num_threads ):
K.set_session(K.tf.Session(config=K.tf.ConfigProto(intra_op_parallelism_threads = num_threads, inter_op_parallelism_threads = num_threads ) ) )
Как для установки количества используемых ядер, так и для использования пользовательской метрики.работать индивидуально, но не работать при совместном использовании.Когда я устанавливаю количество ядер на любое число, а затем пытаюсь обучить модель с использованием метрики auc
, я получаю следующее сообщение об ошибке:
File "/ usr / local / lib /python3.5 / dist-packages / tenorflow / python / framework / errors_impl.py ", строка 528, в exit c_api.TF_GetCode (self.status.status)) tenorsflow.python.framework.errors_impl.FailedPreconditionError: Попытка использовать неинициализированное значение, _device = "/ job: localhost / replica: 0 / task: 0 / device: CPU: 0"] (batch_normalization_1 / moving_mean / local_step, batch_normalization_1 / AssignMovingAvg / batch_normalization_1 / moving_mean / AssignAdd / value)]]
1014*
Я уже смотрел на решения схожих ошибок, такие как обсуждаемые на:
TensorFlow: «Попытка использовать uninitialized value ”в инициализации переменной
и
FailedPreconditionError: Попытка использовать неинициализированный в Tensorflow
, но представленные там решения не кажутсярешить проблему под рукой.Как я смогу установить количество используемых ядер и использовать свой собственный показатель при обучении модели?