hellonlp / classifier-multi-label

多标签文本分类,多标签分类,文本分类, multi-label, classifier, text classification, BERT, seq2seq,attention, multi-label-classification
714 stars 143 forks source link

训练结束后predict.py脚本获取不到标签问题 #3

Open bree2eC opened 3 years ago

bree2eC commented 3 years ago

训练结束后predict.py脚本获取不到标签问题 知乎上也有很多人说predict.py脚本获取到的标签为空,其实不是训练数据有问题或者轮次不够,作者的get_label 函数逻辑有一些小小的问题,我这里简单修改了一下,可以成功获取到标签,新的predict.py 的get_label 函数如下:

def get_label(sentence):
    """
    Prediction of the sentence's label.
    """
    feature = get_feature_test(sentence)
    fd = {MODEL.albert.input_ids: [feature[0]],
          MODEL.albert.input_masks: [feature[1]],
          MODEL.albert.segment_ids:[feature[2]],
          }
    prediction = MODEL.sess.run(MODEL.albert.predictions, feed_dict=fd)[0]
    print(prediction)
    r=[]
    for i in range(len(prediction)):
        if prediction[i]!=0.0:
            r.append(id2label(i))
    return r
    #return [id2label(l) for l in np.where(prediction==1)[0] if l!=0]
hellonlp commented 3 years ago

建议打印prediction看看

nomel0921 commented 2 years ago

训练结束后predict.py脚本获取不到标签问题 知乎上也有很多人说predict.py脚本获取到的标签为空,其实不是训练数据有问题或者轮次不够,作者的get_label 函数逻辑有一些小小的问题,我这里简单修改了一下,可以成功获取到标签,新的predict.py 的get_label 函数如下:

def get_label(sentence):
    """
    Prediction of the sentence's label.
    """
    feature = get_feature_test(sentence)
    fd = {MODEL.albert.input_ids: [feature[0]],
          MODEL.albert.input_masks: [feature[1]],
          MODEL.albert.segment_ids:[feature[2]],
          }
    prediction = MODEL.sess.run(MODEL.albert.predictions, feed_dict=fd)[0]
    print(prediction)
    r=[]
    for i in range(len(prediction)):
        if prediction[i]!=0.0:
            r.append(id2label(i))
    return r
    #return [id2label(l) for l in np.where(prediction==1)[0] if l!=0]

您好,按照您的修改之后我的输出都是第一个标签了...我看了下任何句子的prediction几乎相等,这是什么原因呢...

lonkecxd commented 2 years ago

请问你这个问题解决了吗?我也遇到了,prediction结果都是[]。

hellonlp commented 2 years ago

我的第一个标签是空标签"|",所以会不一样

xtuyaowu commented 1 year ago

大家有用起来么?要不要加个QQ好友交流一下?qq:1840658279

rio5050 commented 1 year ago

prediction打印出来全是0......

hellonlp commented 1 year ago

是正常的,说明预测结果为空