一个易于使用的开放源代码库,用于高级深度学习和自然语言处理

tamnun的Python项目详细描述


tamnun毫升

PyPI pyversionsCircleCI

tamnun是一个python框架,用于机器和深度学习算法和方法,特别是在自然语言处理和转移学习领域。tamnun的目的是提供一个易于使用的接口,以便基于最新的sota方法构建强大的模型。

有关tamnun的更多信息,请阅读the introduction to TamnunML on Medium

入门

tamnun依赖于其他一些机器学习和深度学习框架,如pytorchkeras和其他框架。要安装tamnun及其所有依赖项,请运行:

$ git clone https://github.com/hiredscorelabs/tamnun-ml
$ cd tamnun-ml
$ python setup.py install

或者使用pypi:

pip install tamnun

跳入并尝试一个示例:

$ cd examples
$ python finetune_bert.py

或者看看Jupyer笔记本here

伯特

bert表示来自transformers的双向编码器表示,transformers是由google训练并在其{a5}中引入的语言模型。 在这里,我们使用优秀的PyTorch-Pretrained-BERT库并对其进行包装,以提供一个易于使用的scikit-learn接口,便于进行bert微调。目前,tamnunbert分类器支持二类和多类分类。要对特定任务的bert进行微调:

fromtamnun.bertimportBertClassifier,BertVectorizerfromsklearn.pipelineimportmake_pipelineclf=make_pipeline(BertVectorizer(),BertClassifier(num_of_classes=2)).fit(train_X,train_y)predicted=clf.predict(test_X)

有关完整的代码示例,请参见this notebook

使用一条线安装(几乎)任何pytorch模块

您可以使用TorchEstimator对象来容纳任何pytorch模块,只要一行:

fromtorchimportnnfromtamnun.coreimportTorchEstimatormodule=nn.Linear(128,2)clf=TorchEstimator(module,task_type='classification').fit(train_X,train_y)

请参阅this file,以获取在MNIST(手写数字分类)数据集上拟合nn.Linear模块的完整示例。

蒸馏器转移学习

这个模块将一个非常大(像bert)的模型提取为一个更小的模型。灵感来源于这个paper

fromtamnun.bertimportBertClassifier,BertVectorizerfromtamnun.transferimportDistillerbert_clf=make_pipeline(BertVectorizer(do_truncate=True,max_len=3),BertClassifier(num_of_classes=2))distilled_clf=make_pipeline(CountVectorizer(ngram_range=(1,3)),LinearRegression())distiller=Distiller(teacher_model=bert_clf,teacher_predict_func=bert_clf.decision_function,student_model=distilled_clf).fit(train_texts,train_y,unlabeled_X=unlabeled_texts)predicted_logits=distiller.transform(test_texts)

完整的伯特蒸馏示例见this笔记本。

支架

获取帮助

您可以在Github Issues

许可证

apache许可证2.0(与tensorflow相同)

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

推荐PyPI第三方库


热门话题
java为什么我的代码永远运行?它只是一堆带int的for循环,应该是递减的?   java如何更改IntelliJ IDEA中的XML缩进?   java如何使未填充的int数组不打印0?   eclipse My Weka Java代码结果*Weka*虚拟*STRING*用于*STRING*属性*   java泄漏了Windows com。安卓内部的政策恳求   java这个无限循环的原因是什么?   swing My标签在Java中很模糊   java如何在组件表示存储扩展中获取组件对象   java如何避免selenium网格中的会话超时   Java乘法测验,如果答案错误,如何循环   在Java HttpServlet Google app engine中保存对象   java ArrayList过滤器   java跳跃减慢了xvelocity:使用Libgdx/Box2D进行跳跃和跑步   java删除、复制和修改pom。xml文件   当提供的时区与服务器的时区相同时,RestCall中的java@DateTimeFormat(iso=iso.DATE_TIME)不工作   java Spring批处理多线程默认限制为10隐式?   安卓错误java。lang.UnsupportedOperationException:无法转换为维度:type=0x1