F1-score, Precision, Recall 및 내 맞춤 측정 항목과 같은 측정 항목을 최소화/최대화하고 싶습니다.Tensorflow 최적화 도구의 사용자 지정 메트릭을 만드는 방법은 무엇입니까?
ValueError: No gradients provided for any variable, check your graph for ops that do not support gradients, between variables [...] and loss Tensor("Training/Sub_3:0", shape=(), dtype=float32).
난 일부 사용자 지정 메트릭 대신 손실을 사용하여 내 신경 네트워크를 양성하기 위해 어떻게해야하나요 : 내가 어떤 메트릭을 최소화하려고하면
def my_metric(logits, labels):
predicted = tf.argmax(logits, 1)
actual = tf.argmax(labels, 1)
NS = tf.count_nonzero(actual)
NR = tf.reduce_sum(tf.cast(tf.equal(actual, 0), tf.float32))
TP = tf.reduce_sum(tf.cast(tf.equal(actual+predicted, 0), tf.float32))
FP = tf.reduce_sum(tf.cast(tf.equal(actual*(1-predicted), 1), tf.float32))
TN = tf.reduce_sum(tf.cast(tf.equal(actual+predicted, 2), tf.float32))
FN = tf.reduce_sum(tf.cast(tf.equal(actual+(1-predicted), 0), tf.float32))
'''
Precision = TP/TP + FP
Recall = TP/TP + FN
b = 0.5
denom = (1.0 + b**2) * TP + FN*b**2 + FP
Fb = (1.0 + b**2) * TP/denom
'''
Metric = (TP/NR) - (FP/NS)
return Metric
def training(metric, learning_rate):
optimizer = tf.train.AdamOptimizer(learning_rate)
train_op = optimizer.minimize(metric)
return train_op
, 난 같은 오류가 발생합니다 : 내 메트릭 및 최적화 코드가있다 기능? 그라디언트 정의를 추가 할 수 있습니까? 위의 측정 항목에 대해이를 수행하는 방법은 무엇입니까?