自然语言处理 基于预训练模型的方法 代码解读 [ section 4.1.6, page 77 ]

自然语言处理 基于预训练模型的方法 代码解读 [ section 4.1.6, page 77 ]

自定义神经网络模型的例子:一个简单的多层感知器模型MLP

文件名为 mlp.py

# Defined in Section 4.1.6
# Page 77
# 自定义神经网络模型的第一个例子(The first example of custom neural network model)# 导入torch和torch.nn
# pytorch将常用的神经网络模型封装到了torch.nn包内,从而可以方便灵活地加以调用
# Sigmoid, Softmax, ReLU, tanh等各种激活函数包含在torch.nn.functional中
# activation function 可以实现对输入按元素(每个值value)进行非线性运算(即pointwise,elementwise逐点的计算)import torch
from torch import nn
from torch.nn import functional as F# The class of Multi-Layer Perceptron 多层感知机的类
# 从torch.nn中的Module类继承/派生/扩展/extend 一个子类 sub-class
# 并实现构造函数和forward前向传播函数
class MLP(nn.Module):def __init__(self, input_dim, hidden_dim, num_class):"""constructor构造函数定义了模型所需的成员对象(属性)比如构成该模型的各层,并对其中的参数进行初始化 initializeself 指的是用构造器创建的实例对象本身:param input_dim: 输入的每个序列的元素个数(输入层的神经元个数):param hidden_dim: 隐藏层的神经元个数:param num_class: 输出层的神经元个数"""# 继承父类super(MLP, self).__init__()# 模型三个层的初始化# 线性变换:输入层->隐含层self.linear1 = nn.Linear(input_dim, hidden_dim)# 使用ReLU激活函数self.activate = F.relu# 线性变换:隐含层->输出层 (用来分类)self.linear2 = nn.Linear(hidden_dim, num_class)# 前向传播函数,直接通过实例名调用前向函数,返回nn模型的输出# 参数是inputs输入的数据def forward(self, inputs):# 模型的前向过程# 对输入进行逐层的处理# 从而得到最终的输出结果# 线性变换:输入层->隐含层hidden = self.linear1(inputs)# 使用ReLU激活函数对隐含层进行激活# 让所有的数值都变为非负实数,维数dim保持hidden_dim不会变activation = self.activate(hidden)# 将经过整流线性单元Rectification Linear Unit后的数值activation放到隐含层到输出层的线性映射层outputs = self.linear2(activation)# 对第二维(dim=1)中的element进行softmax的操作# softmax可以让每一个元素的实数数值归一化到 (0,1)# 并且当前维度的每个元素之和等于1# 原来的值越大,则概率越大(函数是单调递增的)# 获得每个输入属于某一类别的概率(num_class是输出张量的元素数目,也即分类的类别数量)probs = F.softmax(outputs, dim=1)# probs是由F.softmax创建的张量,因此该张量的grad_fn求导函数/求梯度函数是<SoftmaxBackward>return probs, hidden, activationdef separator():print("------")# MLP类的构造函数创建一个MLP对象,输入特征的数目input_dim为4,隐藏层维数是5,输出的分类维度是2,即二分类。
mlp = MLP(input_dim=4, hidden_dim=5, num_class=2)# 输入inputs形状为(3, 4)的张量,其中3表示有3个输入(批次大小 batch_size=3, 一次性输入3个样例),4表示每个输入的维度
# i.e. 3*4的矩阵
# 随机赋值每个元素element
inputs = torch.rand(3, 4)
print("输入的张量inputs:")
print(inputs.shape)
print(inputs)
separator()# 通过对象实例直接自动调用forward函数
# 就是用实例的名字,后面小括号的参数放输入inputs
# 得到二分类的概率输出 ( mlp的输出 )
probs, hidden, activation = mlp(inputs)print("隐藏层的张量hidden:")
print(hidden.shape)
print(hidden)
separator()print("隐藏层激活后的张量activation:")
print(activation.shape)
print(activation)
separator()print("输出的张量probs:")
print(probs.shape)# 打印3个输入对应输出的分类概率
print(probs)

​​​​​​​

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10023.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自然语言处理(基于预训练模型)02NLTK工具集

NLTK是对英文文本数据进行处理的常用工具 1 停用词 1.1 查看停用词 import nltk nltk.download(stopwords) from nltk.corpus import stopwords print(stopwords.words(english)) 2 常用语料库 2.1 未标注语料库 2.1.1 找出古腾堡语料库中的emma原文 gutenberg下载地址&am…

【NLP】介绍几个语言生成的预训练模型

作者 | Chilia 哥伦比亚大学 nlp搜索推荐 整理 | NewBeeNLP 大家好&#xff0c;这里是NewBeeNLP。本篇介绍四个为语言生成设计的预训练模型 -- BART&#xff0c;MASS&#xff0c;PEGASUS&#xff0c;UniLM。其中前三种方法都使用了Transformer Encoder-Dec…

使用ChatGPT+Xmind一键生成思维导图,简直泰裤辣

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

【使用心得】最新版ChatGPT查资料

最新版ChatGPT是一款非常实用的软件&#xff0c;它提供了广泛的辅助工具&#xff0c;可帮助我在各个领域提升工作效率。使用体验更加流畅&#xff0c;界面也相对更加美观。 首先&#xff0c;最新版ChatGPT加强了语言翻译功能&#xff0c;并进一步完善了交互方式&#xff0c;使…

ChatGPT4和低代码来临,程序员面临下岗?

一个网友吐槽道&#xff1a; “ 建站出来了&#xff0c;你们说程序员会失业。 低代码出来了&#xff0c;你们说程序员会失业。 Copilot出来了&#xff0c;你们说程序员会失业。 Chatgpt出来了&#xff0c;你们说程序员会失业 虽然这只是网友的吐槽&#xff0c;但却引起了小编…

ChatGPT时代的得意忘言

David S. Soriano, CC BY-SA 4.0 via Wikimedia Commons 导读&#xff1a; 以ChatGPT为代表的新的人工智能语言模型&#xff0c;具有划时代的意义。一个值得思考的问题是&#xff0c;人工智能具备的测算能力&#xff0c;无法完全等同于人类的判断力。 在《测算与判断&#xff1…

ChatGPT提示词工程进阶教学

ChatGPT提示词工程 1 两种大型语言模型LLM1.1 基础大模型&#xff08;base LLM&#xff09;1.2 指令调优大模型(Instruction Tuned LLM) 2 如何更清晰、具体地书写提示词2.1 在提示词中使用“定界符”2.2 向模型请求结构化的输出2.3 要求模型检查任务条件是否满足2.4 输入多范例…

【花雕学AI】ChatGPT的四大语言处理神器:文本生成、问答、创意生成和内容优化的技巧和实例

引言&#xff1a;ChatGPT是一个人工智能聊天机器人&#xff0c;它可以理解和交流多种语言&#xff0c;例如中文、英文、日文、西班牙语、法语、德语等。它是由OpenAI开发的&#xff0c;基于GPT-3.5和GPT-4这两个大型语言模型。它不仅可以与用户进行对话&#xff0c;还可以根据用…

chatgpt赋能python:Python文本清洗:从混乱到整洁

Python 文本清洗&#xff1a;从混乱到整洁 如果你曾经在处理文本数据时花费了大量时间将信息从混乱的文本中取出来&#xff0c;那么你应该考虑使用 Python 进行文本清洗。Python 是一种易于学习和使用的编程语言&#xff0c;可用于自动化文本清洗流程&#xff0c;实现高效准确…

难逃 AI 的法眼:ChatGPT 文本检测器(ERNIE 文本分类)

★★★ 本文源自AlStudio社区精品项目&#xff0c;【点击此处】查看更多精品内容 >>> 参考项目地址&#xff1a;https://github.com/Hello-SimpleAI/chatgpt-comparison-detection 本项目 Demo 地址&#xff1a;https://aistudio.baidu.com/aistudio/projectdetail…

chatgpt赋能python:Python对文本进行分词

Python对文本进行分词 在自然语言处理&#xff08;NLP&#xff09;领域中&#xff0c;对文本进行分词是一个重要的预处理步骤。分词的目的是将一段文本切割成由词语组成的序列&#xff0c;为后续的处理提供基础。 Python在NLP任务中是广泛使用的编程语言之一&#xff0c;有许…

chatgpt赋能python:Python中文文本预处理

Python中文文本预处理 Python作为一门广泛应用于数据分析、机器学习和人工智能的编程语言&#xff0c;在处理中文文本方面也有不可忽视的优势。但是由于中文特殊性&#xff0c;中文文本预处理也有独特的需求。本文将介绍在Python中进行中文文本预处理的常见操作。 分词 分词…

DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

DeepSpeed is a deep learning optimization library that makes distributed training and inference easy, efficient, and effective. www.deepspeed.ai/ DeepSpeed Integration DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

使用EasyExcel导入导出Excel

在管理一个系统时&#xff0c;总会有许多的数据&#xff0c;为了方便浏览查看数据&#xff0c;系统总会提供「导出Excel」的功能&#xff1b;有导出就有导入&#xff0c;在要向数据库中插入大量的数据时&#xff0c;我们向程序提供准备好的 Excel&#xff0c;然后程序读取表格内…

EasyExcel导入导出,处理数据

1.导出模块,导出中有中文文件名称&#xff0c;设置格式 /*** 以流方式响应回给客户端&#xff0c;返回值类型设置成void** param response 输出excel表格&#xff0c;让用户下载*/PostMapping("/exportExcel")public void exportExcel(ZqRewardProjectContract zqRew…

QT常用表格导出为Excel以及Excel导入表格

表格导出为Excel 注意&#xff1a;演示所用到的软件为Qt5.14.2&#xff0c;编译器为MinGW 64-bit&#xff0c;电脑必须装有office所用的类为 QAxObject&#xff0c;QAxObject可以实例化为一个空对象&#xff0c;使用它应该封装的COM对象的名称&#xff0c;或者使用一个指向表示…

获取微信的聊天记录导出为Excel

获取微信的聊天记录导出为Excel ios端 1.工具2.步骤 1.工具 iTunes楼月免费iTunes备份管理器DB Browser for SQLitepython 2.步骤 通过iTunes备份ipone中的数据到电脑上&#xff0c; 打开楼月免费iTunes备份管理器选择备份的记录 导出 微信个人信息中的DB文件夹 使用 DB Br…

Excel表格的导入导出——EasyExcel

参考视频 csdn参考地址 一、导入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.5</version> </dependency>二、实体类 方式一&#xff1a;Excel Property&#xff08;&…

Easyexcel导入导出多个sheet

EasyExcel对于导入导出的操作十分简洁&#xff0c;记录一下多个sheet且内容不一致的导入导出。 引入 easyExcel依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.1</version></d…

EasyExcel实现Excel文件多sheet导入导出

一、概述 最近公司需要做一个需求&#xff0c;通过excel上传病例信息&#xff0c;并将病例信息进行归档和整理&#xff1b;该需求可以简化为excel模板下载和excel上传并解析归档。既然知道需求了&#xff0c;找excel的操作工具jar包吧&#xff0c;发现以前常用的poi需要写的代…