在tensorflow 2.x(Keras)中实现的基于变换器的模型

transformers-keras的Python项目详细描述


变形金刚

Python packagePyPI versionPython

在tensorflow 2.x(Keras)中实现的基于变压器的模型。在

中文文档|[英语]

目录

安装

pip install -U transformers-keras

模型

变压器

培训新变压器:

^{pr2}$

伯特

您可以通过两种方式使用BERT模型:

训练新的BERT模型

用你自己的数据来预训练一个伯特模型。在

fromtransformers_kerasimportBertForPretrainingModelmodel_config={'max_positions':128,'num_layers':6,'vocab_size':21128,}model=BertForPretrainingModel(**model_config)

加载预训练的BERT模型

fromtransformers_kerasimportBertForPretrainingModel# download the pretrained model and extract it to some pathPRETRAINED_BERT_MODEL='/path/to/chinese_L-12_H-768_A-12'model=BertForPretrainingModel.from_pretrained(PRETRAINED_BERT_MODEL)

构建模型后,可以使用自己的数据训练模型。在

下面是一个例子:

fromtransformers_kerasimportBertTFRecordDatasetBuilderbuilder=BertTFRecordDatasetBuilder(max_sequence_length=128,record_option='GZIP')loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)metric=tf.keras.metrics.SparseCategoricalAccuracy(name='acc')model.compile(optimizer='adam',loss=loss,metrics=[metric])model(model.dummy_inputs())model.summary()train_files=['testdata/bert_custom_pretrain.tfrecord']train_dataset=builder.build_train_dataset(train_files,batch_size=32)model.fit(train_dataset,epochs=2)

艾伯特

您可以通过两种方式使用ALBERT模型:

训练新的阿尔伯特模型

您应该将数据处理为tfrecord格式。根据需要修改此脚本transformers_keras/utils/bert_tfrecord_custom_generator.py。在

fromtransformers_kerasimportAlbertForPretrainingModel# ALBERT has the same data format with BERTdataset_builder=BertTFRecordDatasetBuilder(max_sequence_length=128,record_option='GZIP',train_repeat_count=100,eos_token='T')model_config={'max_positions':128,'num_layers':6,'num_groups':1,'num_layers_each_group':1,'vocab_size':21128,}model=AlbertForPretrainingModel(**model_config)

加载预训练的ALBERT模型

fromtransformers_kerasimportAlbertForPretrainingModel# download the pretrained model and extract it to some pathPRETRAINED_BERT_MODEL='/path/to/zh_albert_large'model=AlbertForPretrainingModel.from_pretrained(PRETRAINED_BERT_MODEL)

在构建模型之后,您可以使用自己的数据训练这个模型。在

下面是一个例子:

fromtransformers_kerasimportBertTFRecordDatasetBuilderbuilder=BertTFRecordDatasetBuilder(max_sequence_length=128,record_option='GZIP')loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)metric=tf.keras.metrics.SparseCategoricalAccuracy(name='acc')model.compile(optimizer='adam',loss=loss,metrics=[metric])model(model.dummy_inputs())model.summary()train_files=['testdata/bert_custom_pretrain.tfrecord']train_dataset=builder.build_train_dataset(train_files,batch_size=32)model.fit(train_dataset,epochs=2)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Sonarqube测试覆盖率过滤器(jacoco)   java演示文稿将被取消,因为自创建以来显示度量已更改   java为什么Omnifaces Websocket<o:socket>不能与Websphere 9一起使用?   我试图读取java中的xml,但在我的系统中出现了一个错误   java异步支持未启用,即使默认情况下应该启用   java getThreadHandler方法无法从HandlerThread实例访问   带成员函数的多线程Java启动线程   java jar非法参数   java以编程方式注册@Component注释类   正则表达式如何在java中查找字符串中的长双精度数   具有多客户端的java ServerSocket   java JNI不适用于AppKit线程   java如何在用户选择目录元哈希值时输出该值?   java在春季上传阿拉伯文文件时,文件名以XML实体而不是阿拉伯文符号结束   java为什么我们需要在eclipse中作为远程服务器进行调试?   面向java的数据库计算PageRank   java在单击时切换到不同的活动