【问题标题】:BERT skipping the 1st row of test.tsv when predictingBERT 在预测时跳过了 test.tsv 的第一行
【发布时间】:2020-09-21 11:15:41
【问题描述】:

我正在针对新闻分类问题运行 BERT-Base, Uncased 预训练模型。数据准备的大部分核心逻辑都是从here复制而来的。我在不同的数据集上运行它,因此已经完成了相关的更改。我有 490 篇新闻文章,训练、验证、测试数据的比率为 405 : 45 : 40。这些数据集存在于同一目录中的 train.tsvdev.tsvtest.tsv 文件中,都没有标题。我用来运行分类器的命令是这样的:

python /Users/<username>/Documents/CodeBase/Projects/BERT/run_classifier.py \
--task_name=cola \
--do_train=true \
--do_eval=true \
--do_predict=true \
--data_dir=/Users/<username>/Desktop/NLP_Learning/Fraud\ detection/BERT \
--vocab_file=./vocab.txt \
--bert_config_file=./bert_config.json \
--init_checkpoint=./bert_model.ckpt \
--max_seq_length=128 \
--train_batch_size=32 \
--learning_rate=2e-5 \
--num_train_epochs=3.0 \
--output_dir=/Users/<username>/Desktop/NLP_Learning/Fraud\ detection/BERT_Model_Pretrained/output \
--do_lower_case=True

现在,即使训练和预测完成,问题是生成的test_results.tsv 文件只包含 39 行,应该是 40 行。看起来,test.tsv 的第 0 行似乎在某种程度上得到了跳过。我在这里想念什么?我检查了所有三个输入数据文件,它们都包含适当数量的记录。

【问题讨论】:

    标签: python tensorflow bert-language-model


    【解决方案1】:

    是的,cola 任务的数据格式非常具体。它需要 3 个文件 train.tsvdev.tsvtest.tsv,分别用于训练集、开发/验证集和测试集。

    来到每个 TSV 文件中的数据格式。 train.tsvdev.tsv 格式相同:

    id class_label segment text

    train.tsvdev.tsv 都应该有标题。

    不过,来到test.tsv,格式如下:

    id text(请注意,您不应提供标签或段列)。

    更多重要test.tsv 应该有标题

    【讨论】:

    • 非常感谢。我错过了test.tsv 中的标题,这就是它给我的预测少的原因。
    • 是的,格式主要来自COLA任务的默认文件,..nyu-mll.github.io/CoLA
    猜你喜欢
    • 2019-08-02
    • 2021-06-30
    • 2014-06-07
    • 2013-08-17
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    相关资源
    最近更新 更多