TFのようなインポートtensorflow NPとしてインポートnumpyの N_TRUE_P = 0 N_PRED_P = 0 :DEF reset_running_variables() "" "リセットしゼロに変数を実行する前の値""" グローバルN_TRUE_P、N_PRED_P N_TRUE_P = 0 N_PRED_P = 0 DEF update_running_variables(ラボ、preds ): グローバルN_TRUE_P、N_PRED_P N_TRUE_P + =((ラボ* preds)> 0).SUM() N_PRED_P + =(preds> 0).SUM() DEF calculate_precision(): グローバルN_TRUE_P、N_PRED_Pの リターンフロート(N_TRUE_P)/ N_PRED_P もし__name__ == '__main__': ラベル= np.array([1,1,1,0]、 [1,1,1,0]、 [1,1,1,0]、 [1,1,1,0]、DTYPE = np.uint8) 予測値= np.array([1,0,0,0]、 [1,1,0 、0]、 [1,1,1,0]、 [0,1,1,1]、DTYPE = np.uint8) n_batches = LEN(ラベル) ##numpy #reset_running_variables() # iに対する#範囲内(n_batches): #1 update_running_variables(ラボ=ラベル[i]は、preds =予測[I]) # # 精度= calculate_precision() #プリント( "[NP] SCORE:%1.4f" %の精度) #tensorflow グラフ= TF。グラフ() graph.as_defaultと(): #プレースホルダは、データONFバッチで取る #変数を実行しているリセット/初期化する初期化子の定義 tf_label = tf.placeholder(DTYPE = tf.int32、形状= [なし]) tf_prediction = tf.placeholder(DTYPE = tf.int32、形状= [なし]) #メトリックおよび更新操作を定義 tf_metric、tf_metric_update = tf.metrics .precision(tf_label、 tf_prediction、 NAME = "my_metric") #アイソメトリック動作によって背後格納された変数 running_vars = tf.get_collection(tf.GraphKeys.LOCAL_VARIABLES、スコープ= "my_metric") running_vars_initializer = tf.variables_initializer(var_list = running_vars) セッションとしてtf.Session(グラフ=グラフ)を有します。 session.run(tf.global_variables_initializer()) #初期化/実行変数リセット session.run(running_vars_initializer)の 範囲(n_batches)にiについて: #更新サンプルの新しいバッチで実行されている変数 feed_dict = {tf_label:ラベル[I] 、tf_prediction:予測[I]} session.run(tf_metric_update、feed_dict = feed_dict) #計算スコア スコア= session.run(tf_metric) プリント( "[TF] SCORE:%1.4f" %スコア)
参考ます。https://zhuanlan.zhihu.com/p/43359894