【发布时间】:2021-05-18 07:56:05
【问题描述】:
我有一个标签为 0 和 1 的数据集,这是二元分类问题。尝试使用 tf.keras.metrics.AUC() 作为 model.compile(.. 函数中的指标来查找 AUC 分数时出错。
代码:
initializer = tf.keras.initializers.RandomUniform(minval=0., maxval=1.)
model = tf.keras.models.Sequential()
model.add(tf.keras.Input(shape=(2,)))
model.add(tf.keras.layers.Dense(4, activation='tanh', kernel_initializer=initializer))
model.add(tf.keras.layers.Dense(8, activation='tanh', kernel_initializer=initializer))
model.add(tf.keras.layers.Dense(16, activation='tanh', kernel_initializer=initializer))
model.add(tf.keras.layers.Dense(8, activation='tanh', kernel_initializer=initializer))
model.add(tf.keras.layers.Dense(4, activation='tanh', kernel_initializer=initializer))
model.add(tf.keras.layers.Dense(1))
model.compile(loss= tf.keras.losses.BinaryCrossentropy(),
optimizer = tf.optimizers.SGD(momentum=0.9,),
metrics=['accuracy', tf.keras.metrics.AUC()])
model.fit(X, y, validation_data=(X_val, y_val), epochs=10)
如果我从指标中删除 AUC,代码运行良好。
错误:
InvalidArgumentError:断言失败:[预测必须 >= 0] [条件 x >= y 在元素方面不成立:] [x (sequential_48/dense_293/BiasAdd:0) = ] [[2.12408257][2.12408257][-2.12408257]...] [y (Cast_10/x:0) = ] [0]
[[{{节点 assert_greater_equal/Assert/AssertGuard/else/_1/assert_greater_equal/Assert/AssertGuard/Assert}}]] [操作:__inference_train_function_120642]函数调用栈:train_function
如何找到 AUC 分数/如何将 AUC 分数设置为编译中的指标?
【问题讨论】:
标签: python tensorflow tensorflow2.0 auc