小编amy*_*amy的帖子

用于训练模型的 Keras F1 得分指标

我是 keras 新手,我想用 F1-score 作为指标来训练模型。

\n\n

我遇到了两件事,一是我可以添加回调,二是使用内置的指标函数\n这里,它说指标函数将不会用于训练模型。那么,这是否意味着我可以metrics在编译模型时进行任何争论?\n具体来说,

\n\n
model.compile(optimizer=\'rmsprop\',\n    loss=\'binary_crossentropy\',\n    metrics=[\'accuracy\'])\n
Run Code Online (Sandbox Code Playgroud)\n\n

在上述情况下,即使准确性作为指标传递,它也不会用于训练模型。

\n\n

第二件事是使用此处定义的回调,

\n\n
import numpy as np\nfrom keras.callbacks import Callback\nfrom sklearn.metrics import confusion_matrix, f1_score, precision_score, recall_score\nclass Metrics(Callback):\ndef on_train_begin(self, logs={}):\n self.val_f1s = []\n self.val_recalls = []\n self.val_precisions = []\n\ndef on_epoch_end(self, epoch, logs={}):\n val_predict = (np.asarray(self.model.predict(self.model.validation_data[0]))).round()\n val_targ = self.model.validation_data[1]\n _val_f1 = f1_score(val_targ, val_predict)\n _val_recall = recall_score(val_targ, val_predict)\n _val_precision = precision_score(val_targ, val_predict)\n self.val_f1s.append(_val_f1)\n self.val_recalls.append(_val_recall)\n self.val_precisions.append(_val_precision)\n print \xe2\x80\x9c \xe2\x80\x94 val_f1: %f \xe2\x80\x94 val_precision: %f \xe2\x80\x94 val_recall %f\xe2\x80\x9d …
Run Code Online (Sandbox Code Playgroud)

python deep-learning keras tensorflow

0
推荐指数
1
解决办法
5534
查看次数

标签 统计

deep-learning ×1

keras ×1

python ×1

tensorflow ×1