Toolkit for Machine Learning, Natural Language Processing, and Text Generation, in TensorFlow. This is part of the CASL project: http://casl-project.ai/
当前项目代码仓暂无内容
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
概览
Texar 是一个旨在支持广泛机器学习任务的工具包,特别是在自然语言处理和文本生成领域。它提供了易于使用的机器学习模块与功能,让组合任意模型和算法变得简单。该工具面向研究者和实践者设计,便于快速原型设计和实验。
Texar 最初由 Petuum 和 卡耐基梅隆大学(CMU) 开发,并与其他机构合作积极贡献。其镜像仓库由 Petuum 开源维护。
关键特性
- 双版本,相似接口:Texar-TensorFlow(本仓库)和 Texar-PyTorch 接口基本一致,两者融合了 TensorFlow 和 PyTorch 的最佳设计:
- 遵循 PyTorch约定 的接口和变量共享。
- 结合了 TensorFlow约定 的优良因子分解与丰富功能。
- 丰富的预训练模型,统一接口下的广泛应用:BERT、GPT2、XLNet 等,用于编码、分类、生成以及与其他Texar组件组成复杂模型!
- 多层高度定制化,对新手友好同时也满足专家需求:
- 完全兼容原生的 TF/PyTorch API,自由接入外部模块。
- 适应性强,覆盖广泛的任务、模型、算法、数据处理和评估等方面。
- 模块化以实现最大化重用和清晰的API,基于“学习-推理-模型架构”的原则分解。
- 分布式支持多GPU下的模型训练。
- 提供详细的文档和丰富的示例。

库API示例
构建带有最大似然学习的编码器-解码器模型:
import texar.tf as tx
# 数据准备
data = tx.data.PairedTextData(hparams=hparams_data)
iterator = tx.data.DataIterator(data)
batch = iterator.get_next()
# 模型架构
embedder = tx.modules.WordEmbedder(data.target_vocab.size, hparams=hparams_emb)
encoder = tx.modules.TransformerEncoder(hparams=hparams_enc)
outputs_enc = encoder(inputs=embedder(batch['source_text_ids']))
decoder = tx.modules.TransformerDecoder(output_layer=tf.transpose(embedder.embedding))
outputs, _, _ = decoder(memory=outputs_enc,
memory_sequence_length=batch['source_length'],
inputs=embedder(batch['target_text_ids']),
sequence_length=batch['target_length']-1,
decoding_strategy='greedy_train')
# 计算最大似然损失
loss = tx.losses.sequence_sparse_softmax_cross_entropy(
labels=batch['target_text_ids'][:, 1:],
logits=outputs.logits,
sequence_length=batch['target_length']-1)
相同模型,采用对抗学习:
helper = tx.modules.GumbelSoftmaxTrainingHelper(start_tokens=[BOS]*batch_size, embedding=embedder)
outputs, _ = decoder(helper=helper)
discriminator = tx.modules.BertClassifier(hparams=hparams_bert)
G_loss, D_loss = tx.losses.binary_adversarial_losses(real_data=batch['target_text_ids'][:, 1:],
fake_data=outputs.sample_id,
discriminator_fn=discriminator)
使用强化学习(策略梯度方法)的同一模型:
agent = tx.agents.SeqPGAgent(samples=outputs.sample_id, logits=outputs.logits,
sequence_length=batch['target_length']-1, hparams=config_model.agent)
更多示例请见 这里
安装
注意:Texar>0.2.3需要Python 3.6或3.7。要使用较旧的Python版本,请安装Texar<=0.2.3
Texar要求:
tensorflow >= 1.10.0且< 2.0.0。tensorflow_probability >= 0.3.0且< 0.8.0。
安装好tensorflow和tensorflow_probability后,通过PyPI安装Texar:
pip install texar
若要使用最新功能或本地开发,则从源代码安装:
git clone https://github.com/asyml/texar.git
cd texar
pip install .
入门
引用
如果您使用了Texar,请引用以下技术报告的BibTeX条目:
@inproceedings{hu2019texar,
title={Texar: A Modularized, Versatile, and Extensible Toolkit for Text Generation},
author={Hu, Zhiting and others},
booktitle={ACL 2019, System Demonstrations},
year={2019}
}
许可证
支持Texar的企业和大学
项目介绍
TensorFlow 中的机器学习、自然语言处理与文本生成工具包。这是 CASL 项目的一部分:http://casl-project.ai/【此简介由AI生成】
Apache-2.0 Python1.72 K提交数bertcasl-projectdata-processingdeep-learningdialog-systemsgpt-2machine-learningmachine-translationnatural-language-processingpythontensorflowtexartext-datatext-generationxlnet
定制我的领域