使用自定义auc度量时,keras设置张量流中的核心数

时间:2019-02-22 16:25:17

标签: python multithreading tensorflow keras metrics

我想设置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指标训练模型时,我收到以下错误消息:

  

退出中的文件“ /usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/errors_impl.py”,第528行       c_api.TF_GetCode(self.status.status))   tensorflow.python.framework.errors_impl.FailedPreconditionError:尝试使用未初始化的值batch_normalization_1 / moving_mean / local_step        [[{{node batch_normalization_1 / AssignMovingAvg / batch_normalization_1 / moving_mean / AssignAdd}} = AssignAdd [T = DT_FLOAT,_class = [“ loc:@ batch_normalization_1 / AssignMovingAvg”],use_locking = false,_device =“ / job:localhost /副本: 0 /任务:0 /设备:CPU:0“](batch_normalization_1 / moving_mean / local_step,batch_normalization_1 / AssignMovingAvg / batch_normalization_1 / moving_mean / AssignAdd / value)]]

我已经研究了类似错误的解决方案,例如:

TensorFlow: “Attempting to use uninitialized value” in variable initialization

FailedPreconditionError: Attempting to use uninitialized in Tensorflow

,但是此处提供的解决方案似乎无法解决当前的问题。在训练模型时,如何设置使用的内核数并使用自定义指标?

0 个答案:

没有答案