我正在使用Huggingface的TFBertForSequenceClassification进行多标签tweets分类。在训练过程中,模型存档精度较好,但验证精度较差。我试着用一些辍学来解决过度适应的问题,但是表现仍然很差。模式如下:
# Get and configure the BERT model
config = BertConfig.from_pretrained("bert-base-uncased", hidden_dropout_prob=0.5, num_labels=13)
bert_model = TFBertForSequenceClassification.from_pretrained("bert-base-uncased", config=config)
optimizer = tf.keras.optimizers.Adam(learning_rate=3e-5, epsilon=0.00015, clipnorm=0.01)
loss = tf.keras.losses.CategoricalCrossentropy(from_logits=True)
metric = tf.keras.metrics.CategoricalAccuracy('accuracy')
bert_model.compile(optimizer=optimizer, loss=loss, metrics=[metric])
bert_model.summary()摘要如下:

当我符合模型时,结果是:
history = bert_model.fit(train_ds, epochs=30, validation_data = test_ds)

发布于 2020-06-23 17:05:40
根据我的经验,最好使用BERT模型构建自己的分类器,并为分类目的在模型中添加2-3层。作为内置的情感分类器,只使用单一的一层。但是,为了更好地推广,您的模型应该更深入,适当的正则化。由于您大约有13节课,您应该使用更深层次的模型,并为每个类提供大量的培训示例。
https://datascience.stackexchange.com/questions/76527
复制相似问题