kerasでtensorflowのmetricsを用いる
タイトル通りkerasでtensorflowのmetricsを使用したいです。
自分で調べながら関数を作成したところ以下のようなものを作りました。
しかし実際にnumpyなどで出力された数字とラベルの相関を計算(corrcoef,pearsonr)してみると全然ちがう値が出力されます。
ご教授いただけたら幸いです。
ちなみにjupyter notebook + python3.2+ tensorflow 1.8でおこなっています。
def correlation_coefficient(y_true, y_pred):
pearson_r, update_op = tf.contrib.metrics.streaming_pearson_correlation(y_pred, y_true)
# find all variables created for this metric
metric_vars = [i for i in tf.local_variables() if 'correlation_coefficient' in i.name.split('/')[1]]
# Add metric variables to GLOBAL_VARIABLES collection.
# They will be initialized for new session.
for v in metric_vars:
tf.add_to_collection(tf.GraphKeys.GLOBAL_VARIABLES, v)
# force to update metric values
with tf.control_dependencies([update_op]):
pearson_r = tf.identity(pearson_r)
return pearson_r