我开始使用tensorflow(来自Caffe),我正在使用损失sparse_softmax_cross_entropy_with_logits.该函数接受标签,0,1,...C-1而不是onehot编码.现在,我想根据类标签使用加权; 我知道如果我使用softmax_cross_entropy_with_logits(一个热编码),可以用矩阵乘法来完成,有没有办法做同样的事情sparse_softmax_cross_entropy_with_logits?
Tensorflow函数tf.nn.weighted_cross_entropy_with_logits()接受参数pos_weight.该文档定义pos_weight为"用于正面例子的系数 ".我认为这意味着增加会pos_weight增加误报的损失并减少假阴性的损失.或者我倒退了吗?
我正在为高度不平衡的分类问题实施 CNN,我想在 tensorflow 中实施 custum 指标以使用 Select Best Model 回调。具体来说,我想实现平衡准确度分数,即每个类的召回率的平均值(请参阅此处的sklearn 实现),有人知道怎么做吗?
metrics machine-learning neural-network conv-neural-network tensorflow
我有两个看起来像这样的数据集:
DATASET 1
Training (Class 0: 8982, Class 1: 380)
Testing (Class 0: 574, Class 1: 12)
DATASET 2
Training (Class 0: 8982, Class 1: 380)
Testing (Class 0: 574, Class 1: 8)
Run Code Online (Sandbox Code Playgroud)
我正在尝试在 Tensorflow 中构建一个深度前馈神经网络。我在 90 年代获得准确度,在 80 年代获得 AUC 分数。当然,数据集严重不平衡,因此这些指标毫无用处。我的重点是获得良好的召回值,我不想对第 1 类进行过采样。我一直在玩弄模型的复杂性,但无济于事,最好的模型只能正确预测 25% 的正类。
我的问题是,考虑到这些数据集的分布,在没有获得更多数据的情况下构建模型是徒劳的(我无法获得更多数据),还是有一种方法可以处理如此不平衡的数据。
谢谢!
给定批量 RGB 图像作为输入,shape=(batch_size, width, height, 3)
多类目标表示为 one-hot,shape=(batch_size, width, height, n_classes)
以及最后一层具有 softmax 激活的模型(Unet、DeepLab)。
我正在寻找 kera/tensorflow 中的加权分类交叉熵损失函数。
class_weight中的论点似乎fit_generator不起作用,我在这里或https://github.com/keras-team/keras/issues/2115中没有找到答案。
def weighted_categorical_crossentropy(weights):
# weights = [0.9,0.05,0.04,0.01]
def wcce(y_true, y_pred):
# y_true, y_pred shape is (batch_size, width, height, n_classes)
loos = ?...
return loss
return wcce
Run Code Online (Sandbox Code Playgroud)