使用pytorch定义自己的模型是继承nn.Module实现的。在__init__方法中定义需要初始化的参数,一般把网络中具有可学习参数的层放在这里定义。forward方法实现模型的功能,实现各个层之间的连接关系的核心。backward函数就会被自动实现(利用Autograd)。

class WordAveragingModel(nn.Module):def __init__(self, vocab_size: int, embed_dim: int, embed_dropout: float = 0.25,pad_idx: int = Vocabulary.pad_idx):......def forward(self, input_ids: torch.LongTensor, attention_mask: torch.LongTensor) -> Output:......

模型实例化

word_avg = WordAveragingModel(len(vocab), embed_dim=EMBED_DIM,
embed_dropout=DROPOUT) 这里传入的参数类型、个数是由构造函数定义的。

模型前向计算

tokenized = {“input_ids”:xxxxxxxxxxxxxx,“attention_mask”:hhhhhhhhhhhh}
y=word_avg(**tokenized)

参数tokenized包含的参数名称、类型是由forward方法定义的。
因为在Python中只要定义类型的时候,实现__call__函数,这个类型就成为可调用的。 换句话说,我们可以把这个类型的对象当作函数来使用。nn.Module的__call__自动调用了forward方法。
再说tokenized,肯定来自于数据集,是一次批处理的数据。

pytorch自定义模型执行过程相关推荐

  1. 手把手教你洞悉 PyTorch 模型训练过程,彻底掌握 PyTorch 项目实战!(文末重金招聘导师)...

    (文末重金招募导师) 在CVPR 2020会议接收中,PyTorch 使用了405次,TensorFlow 使用了102次,PyTorch使用数是TensorFlow的近4倍. 自2019年开始,越来 ...

  2. 自定义msi安装包的执行过程

    有时候我们需要在程序中执行另一个程序的安装,这就需要我们去自定义msi安装包的执行过程. 比如我要做一个安装管理程序,可以根据用户的选择安装不同的子产品.当用户选择了三个产品时,如果分别显示这三个产品 ...

  3. 【小白学PyTorch】18.TF2构建自定义模型

    [机器学习炼丹术]的学习笔记分享 <<小白学PyTorch>> 扩展之Tensorflow2.0 | 17 TFrec文件的创建与读取 扩展之Tensorflow2.0 | 1 ...

  4. TensorFlow 2.0 - 自定义模型、训练过程

    文章目录 1. 自定义模型 2. 学习流程 学习于:简单粗暴 TensorFlow 2 1. 自定义模型 重载 call() 方法,pytorch 是重载 forward() 方法 import te ...

  5. Pytorch学习记录(七):自定义模型 Auto-Encoders 使用numpy实现BP神经网络

    文章目录 1. 自定义模型 1.1 自定义数据集加载 1.2 自定义数据集数据预处理 1.3 图像数据存储结构 1.4 模型构建 1.5 训练模型 2. Auto-Encoders 2.1 无监督学习 ...

  6. 初识洋葱模型,分析中间件执行过程,浅析koa中间件源码

    前言 作为洋葱模型的第一篇文章,这里仅介绍了一些入门级知识,比如 了解洋葱模型执行顺序 分析部分 koa 中间件的源码来加深对中间件的认识 为第二篇文章:分析洋葱模型实现原理,在自己项目中接入洋葱模型 ...

  7. MyBatis核心源码剖析(SqlSession XML解析 Mapper executor SQL执行过程 自定义类型处理器 缓存 日志)

    MyBatis核心源码剖析 MyBatis核心源码剖析 1 MyBatis源码概述 1.1 为什么要看MyBatis框架的源码 1.2 如何深入学习MyBatis源码 1.3 源码分析的5大原则 2 ...

  8. java如何给一个链表定义和传值_如何在CUDA中为Transformer编写一个PyTorch自定义层...

    如今,深度学习模型处于持续的演进中,它们正变得庞大而复杂.研究者们通常通过组合现有的 TensorFlow 或 PyTorch 操作符来发现新的架构.然而,有时候,我们可能需要通过自定义的操作符来实现 ...

  9. pytorch创建模型并训练(初探文本分类问题)

        本博客对pytorch在深度学习上的使用进行了介绍,本博客并不会对怎么训练一个好的模型进行介绍(其实我也不会),我觉得训练一个好的模型首先得选对一个模型(关键的问题在于模型如何设计),然后再经 ...

最新文章

  1. 怎么看电脑电源多少w_电脑电源供电不足会怎么样 电脑电源供电不足坏处介绍【详解】...
  2. vue 设置输入法隐藏_原来iPhone自带的输入法这么强大?好多人都不知道其中的隐藏功能...
  3. spring mvc框架设计与实现
  4. python链接mysql 判断是否成功_python连接mysql数据库并读取数据的实现
  5. docker与mmdetection
  6. php中 怎么去除,php如何去掉链接
  7. Ibatis学习总结2--SQL Map XML 配置文件
  8. 基于matlab的绘图设计,matlab课程设计---利用MATLAB仿真软件进行绘图
  9. ecshop各项功能介绍参考
  10. HackPorts – Mac OS X 渗透测试框架与工具
  11. 03.Java语言基础
  12. html显示链接音乐,歌曲链接怎么填_HTML中如何链接本地音乐
  13. 计算机ln代表什么意思,ln计算器(log计算器在线)
  14. c# 使用Microsoft.Office.Interop.Excel导出文件时提示 兼容性检查
  15. 如何用蓝牙网关广播蓝牙数据
  16. Java项目:SSH公交路线查询网站系统
  17. 帆软10.0服务器Tomcat 下通过 IP 直接访问数据决策系统出错
  18. 【TP调试】android虚拟按键无振动效果
  19. 新中新二代身份证读卡Syn_ReadBaseMsg方法
  20. 电影《可可西里》散记

热门文章

  1. AngularJS移动端页面input无法输入
  2. 软件测试——性能测试、压力测试、负载测试等详解
  3. UVA10763:Foreign ExchangeUVA10340: All in All(水题)
  4. SQL开发中容易忽视的一些小地方( 三)
  5. 看看自己08年的基金是否能赚钱
  6. Spring AOP学习笔记
  7. java同时满足语句_关于控制语句,下列哪些说法符合《阿里巴巴Java开发手册》:...
  8. springboot-devtools idea或eclipse 热加载
  9. js 解除网页右键菜单被禁用
  10. js调用WebService(复杂对象传入)[原创]