Используйте параметр thesholds в tf.keras.metrics.Recall - PullRequest
0 голосов
/ 20 сентября 2019

Я хотел бы знать, как рассчитывается отзыв, когда задано несколько порогов.Ниже приведен фрагмент описания из порогов https://www.tensorflow.org/api_docs/python/tf/keras/metrics/Recall

: (Необязательно) Значение с плавающей запятой или список питонов / кортеж пороговых значений с плавающей запятой в [0, 1].Пороговое значение сравнивается со значениями прогноза для определения истинного значения прогноза (т. Е. Выше порогового значения истинно, ниже ложного).Одно значение метрики генерируется для каждого порогового значения.Если ни пороги, ни top_k не установлены, по умолчанию рассчитывается возврат с порогами = 0,5.

Я пытаюсь передать список из 3 пороговых значений, и в соответствии с описанием, я ожидал 3 значения отзывабудет генерироваться (т. е. один отзыв на порог), но он не работает таким образом, генерируется только 1 метрика отзыва.

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding,Flatten,Dense
from tensorflow.keras.layers import LSTM
from tensorflow.keras.layers import Bidirectional
from tensorflow.keras.layers import Dropout
from tensorflow.keras import layers
model=Sequential()
model.add(Embedding(len(tokens)+1,embedding_dim,input_length=MAX_TEXT_LEN,weights=[embedding_matrix]))
model.add(LSTM(128))
model.add(Dropout(0.5))
model.add(Dense(9,activation='sigmoid'))
opt=tf.keras.optimizers.Adam(lr=0.0001)
model.compile(loss='binary_crossentropy', optimizer=opt, metrics=[tf.keras.metrics.Recall(thresholds=[0.2,0.4,0.8]))
...