keras устанавливает число ядер в тензорном потоке при использовании пользовательской метрики auc - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу установить количество ядер, используемых в 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

, но представленные там решения не кажутсярешить проблему под рукой.Как я смогу установить количество используемых ядер и использовать свой собственный показатель при обучении модели?

...