https://www.bilibili.com/video/BV1GB4y1H7hq?spm_id_from=333.999.0.0&vd_source=b1ce52b6eb3a9e6c2360a4b7172edf5a

class LayerNorm(nn.Module):

    def __init__(self, feature, eps=1e-6):
"""
:param feature: self-attention 的 x 的大小
:param eps:
"""
super(LayerNorm, self).__init__()
self.a_2 = nn.Parameter(torch.ones(feature))
self.b_2 = nn.Parameter(torch.zeros(feature))
self.eps = eps def forward(self, x):
mean = x.mean(-1, keepdim=True)
std = x.std(-1, keepdim=True)
return self.a_2 * (x - mean) / (std + self.eps) + self.b_2 # python 面向对象
# 当你不做高拓展的时候,下面这种写法被你给写死了
# 一个 512 维的向量,还有一个 256 维的向量
l1 = LayerNorm(10)
l2 = LayerNorm(20) l1() l1() l1() l1() l1()
l2()

今天

class LayerNorm1(nn.Module):

    def __init__(self):
"""
:param feature: self-attention 的 x 的大小
:param eps:
"""
super(LayerNorm1, self).__init__() def forward(self, feature, x, eps=1e-6):
self.a_2 = nn.Parameter(torch.ones(feature))
self.b_2 = nn.Parameter(torch.zeros(feature))
self.eps = eps
mean = x.mean(-1, keepdim=True)
std = x.std(-1, keepdim=True)
return self.a_2 * (x - mean) / (std + self.eps) + self.b_2 l3 = LayerNorm1()
l3(1) l3(1)
l3(1) l3(1)
l3(1)

0201 为什么 Pytorch 定义模型要有一个 init 和一个 forward,两者怎么区分的更多相关文章

  1. Django(三) 模型:ORM框架、定义模型类并创建一个对应的数据库、配置Mysql数据库

    一.模型概述 https://docs.djangoproject.com/zh-hans/3.0/intro/tutorial02/ https://www.runoob.com/django/dj ...

  2. [Pytorch]深度模型的显存计算以及优化

    原文链接:https://oldpan.me/archives/how-to-calculate-gpu-memory 前言 亲,显存炸了,你的显卡快冒烟了! torch.FatalError: cu ...

  3. 从头学pytorch(九):模型构造

    模型构造 nn.Module nn.Module是pytorch中提供的一个类,是所有神经网络模块的基类.我们自定义的模块要继承这个基类. import torch from torch import ...

  4. 使用Pytorch搭建模型

    本来是只用Tenorflow的,但是因为TF有些Numpy特性并不支持,比如对数组使用列表进行切片,所以只能转战Pytorch了(pytorch是支持的).还好Pytorch比较容易上手,几乎完美复制 ...

  5. [炼丹术]使用Pytorch搭建模型的步骤及教程

    使用Pytorch搭建模型的步骤及教程 我们知道,模型有一个特定的生命周期,了解这个为数据集建模和理解 PyTorch API 提供了指导方向.我们可以根据生命周期的每一个步骤进行设计和优化,同时更加 ...

  6. 实践torch.fx第一篇——基于Pytorch的模型优化量化神器

    第一篇--什么是torch.fx 今天聊一下比较重要的torch.fx,也趁着这次机会把之前的torch.fx笔记整理下,笔记大概拆成三份,分别对应三篇: 什么是torch.fx 基于torch.fx ...

  7. PyTorch实践模型训练(Torchvision)

    模型训练的开发过程可以看作是一套完整的生产流程,这些环节包括: 数据读取.网络设计.优化方法与损失函数的选择以及一些辅助的工具等,TorchVision是一个和PyTorch配合使用的Python包, ...

  8. PyTorch保存模型与加载模型+Finetune预训练模型使用

    Pytorch 保存模型与加载模型 PyTorch之保存加载模型 参数初始化参 数的初始化其实就是对参数赋值.而我们需要学习的参数其实都是Variable,它其实是对Tensor的封装,同时提供了da ...

  9. V-rep学习笔记:机器人模型创建4—定义模型

    完成之前的操作后终于来到最后一步——定义模型,即将之前创建的几何体.关节等元素按层级关系组织成为一个整体. 将最后一个连杆robot_link_dyn6拖放到相应的关节(robot_joint6)下, ...

  10. django定义模型类-14

    目录 1. 定义 字段类型 约束类型 django的模型类定义在应用下的 models.py 文件中. 模型类继承自 django.db.models 包下的 Model 类. 新创建应用 book ...

随机推荐

  1. 什么是智慧城市(Smart City)?

    Smart City是一个常见的概念,但是这个东西,这个名词到底指代的是什么却一直搞不太清,于是就查了查资料,有了这篇blog. 参考: https://baijiahao.baidu.com/s?i ...

  2. 《Python数据可视化之matplotlib实践》 源码 第四篇 扩展 第十三章

    图  13.10 import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np mpl.rcParams[&q ...

  3. 人工智能Python代码的补全利器 Kite 安装

    代码补全应用kite主要对Python代码进行补全,或者说kite是针对现在的人工智能Python代码(pytorch.tensorflow)等做补全的,而且在Python代码补全上kite可以说是现 ...

  4. 硬盘测速工具中的队列深度是个什么东西——CrystalDiskMark中的Q32T16是什么意思

    ================================ 最近有使用CrystalDiskMark给自己的硬盘做测速,发现有个名词自己不是很理解,就是像Q32T16这样的词: 在网上找了好久, ...

  5. java多线程-补充-面试

    1.背景 在这个课程之前我们已经讲了2个关于多线程的课程 一个是主要是关于多线程基础的: 另一个主要是关于JUC的: 今天我们对之前课程中没有讲到的或者重要的或者是童鞋们反馈的技术点做一个补充讲解 当 ...

  6. Electron31-Vue3Admin管理系统|vite5+electron+pinia桌面端后台Exe

    自研electron31+vite5桌面端高颜值后台管理解决方案ElectronViteAdmin. vite-electron31-admin原创基于electron31+vite5+vue3 se ...

  7. JAVA——水仙花数问题

    2024/07/12 1.问题 2.错误解法 3.错误分析 4.正确解法 5.其他:关于Java中幂函数的用法 6.参考 1.问题 2.错误解法 import java.util.Scanner; p ...

  8. java_GUI

    package GUi;import java.awt.*;import static java.awt.Color.red;public class GuI { public static void ...

  9. Graphics2D绘图方法总结

    一.简介 在开发中可能会遇到这样一类场景,业务复杂度不算太高,技术难度不算太深,但是做起来就很容易把人整破防,伤害很高侮辱性很强的:绘图. 绘图最怕有人挑刺:这里变形,那里不对,全图失真. 最近在处理 ...

  10. React 高德地图 进京证 (二)

    上回书说到,躲开摄像头的基本功能实现了,但有三个核心问题: (1)速度慢 (2)距离远易失败 (3)地图限制 第一个问题:较为简单,把几千个摄像头按行政区划分好带上编号,在路线分段避让时按片儿计算,综 ...