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