我正在尝试使用Tensorflow对Huggingface中预先训练好的BERT模型进行微调。一切都很顺利,模型的构建和训练都没有错误。但当我尝试保存模型时,它停止并显示错误"IndexError: list index out of range“。我正在使用谷歌Colab和TPU。
任何帮助都将不胜感激!
代码:
import tensorflow as tf
from tensorflow.keras import activations, optimizers, losses
from transformers import TFBertModel
def create_mod
我已经创建了自己的BertClassifier模型,从预先训练开始,然后添加由不同层组成的自己的分类头。微调之后,我想使用model.save_pretrained()保存模型,但当我打印它时,从预先训练过的上传它,我没有看到我的分类器头。代码如下。如何将所有的结构保存在我的模型中,并使其完全可以使用AutoModel.from_preatrained('folder_path')访问?谢谢!
class BertClassifier(PreTrainedModel):
"""Bert Model for Classification Tasks
我希望在两个相关数据集上建立一个多任务学习模型,该模型具有不同的输入和目标。这两个任务共享低级层,但具有不同的头层,这是一个最小的例子:
class MultiMLP(nn.Module):
"""
A simple dense network for MTL on hard parameter sharing.
"""
def __init__(self):
super().__init__()
self.hidden = nn.Linear(100, 200)
s
我想知道微调后的模型与不经过精细调整的模型相比有多大的改善,我想比较一下预先训练的模型( BERT)和通过对文本分类的预训练模型进行微调所获得的模型(微调BERT )的性能,我知道如何微调BERT来进行文本分类,但不太清楚如何直接使用BERT来实现classification.what呢?下面是微调模型的代码,如何重写它以直接使用经过培训的模型。
<!-- language: python -->
from transformers import BertTokenizer, BertModel
import torch
import torch.nn as nn
im
我想使用这个预先训练好的模型:Hate-speech-CNERG/dehatebert-mono-arabic 我使用以下代码来使用Keras (我通常使用的库)构建模型: def build_model(transformer, max_len=512):
"""
function for training the model
"""
input_word_ids = Input(shape=(max_len,), dtype=tf.int32, name="input_word_ids")
我使用了TFBertModel和Tensorflow模型来结合和训练拥抱的面部变形。我想保存每个时代的val_accuracy的最佳模型。我使用'tensorflow检查点‘,但我得到了error.How我是否可以保存每个时代的最佳模型与transformers在tensorflow? from tensorflow.keras.callbacks import EarlyStopping
from tensorflow.keras.initializers import TruncatedNormal
from tensorflow.keras.losses import Cate
我是这个领域的初学者,我被困住了。我遵循本教程()构建一个多标签分类使用拥抱脸转换器。
下面是我用来训练我的模型的代码。
# Name of the BERT model to use
model_name = 'bert-base-uncased'
# Max length of tokens
max_length = 100
PATH = 'uncased_L-12_H-768_A-12/'
# Load transformers config and set output_hidden_states to False
config = BertConf