pytorch_trick:实例化模型时参数的随机取值(torch.manual_seed和random.seed)

在手动创建模型类之后,每次实例化都会随机生成一组参数值

class logisticR(nn.Module):
    def __init__(self, in_features=2, out_features=1):       # 定义模型的点线结构
        super(logisticR, self).__init__()
        self.linear = nn.Linear(in_features, out_features)
        
    def forward(self, x):                                    # 定义模型的正向传播规则
        out = self.linear(x)             
        return out

list(logisticR().parameters())
list(logisticR().parameters())

输出结果

[Parameter containing:
 tensor([[ 0.4318, -0.4256]], requires_grad=True),
 Parameter containing:
 tensor([0.6730], requires_grad=True)]

[Parameter containing:
 tensor([[-0.5617, -0.2157]], requires_grad=True),
 Parameter containing:
 tensor([-0.4873], requires_grad=True)]

若需要完全复现模型训练过程,则需要在实例化之前设置随机数种子,或者在上一个随机数种子之前规定有限次的随机次数。

- 随机数种子可以在全域发挥作用
torch.manual_seed(420)  
list(logisticR().parameters())
list(logisticR().parameters())

torch.manual_seed(420)  
list(logisticR().parameters())
list(logisticR().parameters())

输出结果:

<torch._C.Generator at 0x257c273ef90>
[Parameter containing:
 tensor([[ 0.4318, -0.4256]], requires_grad=True),
 Parameter containing:
 tensor([0.6730], requires_grad=True)]
[Parameter containing:
 tensor([[-0.5617, -0.2157]], requires_grad=True),
 Parameter containing:
 tensor([-0.4873], requires_grad=True)]

<torch._C.Generator at 0x257c273ef90>
[Parameter containing:
 tensor([[ 0.4318, -0.4256]], requires_grad=True),
 Parameter containing:
 tensor([0.6730], requires_grad=True)]
[Parameter containing:
 tensor([[-0.5617, -0.2157]], requires_grad=True),
 Parameter containing:
 tensor([-0.4873], requires_grad=True)]
  • torch.manual_seed不会对random中的随机过程造成影响
# - torch.manual_seed不会对random中的随机过程造成影响
l = list(range(5))
l
random.shuffle(l)
l

torch.manual_seed(420)  
l = list(range(5))
l
random.shuffle(l)
l

torch.manual_seed(420)  
l = list(range(5))
l
random.shuffle(l)
l

输出结果:

[0, 1, 2, 3, 4]
[2, 1, 3, 4, 0]

<torch._C.Generator at 0x257c273ef90>
[0, 1, 2, 3, 4]
[1, 4, 2, 0, 3]

<torch._C.Generator at 0x257c273ef90>
[0, 1, 2, 3, 4]
[0, 3, 1, 2, 4]
  • random中可以通过设置random.seed来控制随机过程
# - random中可以通过设置`random.seed`来控制随机过程
random.seed(420)  
l = list(range(5))
l
random.shuffle(l)
l

random.seed(420)  
l = list(range(5))
l
random.shuffle(l)
l

输出结果:

[0, 1, 2, 3, 4]
[4, 3, 1, 2, 0]

[0, 1, 2, 3, 4]
[4, 3, 1, 2, 0]

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

el-upload 上传多个视频

<el-form-item label="视频" prop="video_url"><el-uploadclass="upload-demo"ref="uploadRef":multiple="true":on-change="handleChange":before-remove="beforeRemove":before-upload=&quo…

Typescript 哲学 - d.ts文件

The .d.ts syntax intentionally looks like ES Modules syntax. ES Modules was ratified by TC39 in 2015 as part of ES2015 (ES6), while it has been available via transpilers for a long time default export (esModuleInterop:true) / export 讲一个 d.ts export 的…

PCB供电夹子DIY

在刷小红书的时候&#xff0c;看到了清华卓晴教授【https://zhuoqing.blog.csdn.net/】DIY的供电夹子&#xff0c;感觉对于自己DIY PCB的时候供电会比较方便&#xff0c;物料也比较简单&#xff0c;打算复刻一下。 使用物料 1、小夹子&#xff0c;文具店都有卖&#xff0c;选…

Android手动下载Gradle的使用方法

导入新项目通常会自动下载gradle版本&#xff0c;这种方式很慢而且经常下载失败&#xff0c;按照提示手动下载的gradle应该放在那里&#xff0c;如何使用&#xff0c;本篇文章为你提供一种亲测有效的方法&#xff1a; 在Android Studio打开Setting搜索Gradle找到Gradle的存放目…

亚马逊测评真人号与自养号:如何选择?区别与作用全面解析

亚马逊卖家都希望能打造出热销产品的产品列表&#xff0c;因为评论对于列表的曝光和流量有着巨大的影响。然而&#xff0c;获取有效的产品评论并不容易&#xff0c;许多卖家为了提高自己产品在同类别中的竞争力&#xff0c;选择进行测评。测评可以快速提高产品的排名、权重和销…

Python自学之路--004:Python使用注意点(原始字符串‘r’\字符转换\‘wb’与‘w区别’\‘\‘与‘\\’区别)

目录 1、原始字符串‘r’ 2、字符转换问题 3、open与write函数’wb’与’w’区分 4、Python里面\与\\的区别 1、原始字符串‘r’ 以前的脚本通过Python2.7写的&#xff0c;通过Python3.12去编译发现不通用了&#xff0c;其实也是从一个初学者的角度去看待这些问题。 其中的\…

ROS2 - 创建项目( Ubuntu 22.04 )

本文简述&#xff1a;在 Ubuntu22.04 系统中使用 VS Code 来搭建一个ROS2开发项目。 ROS2 安装&#xff1a; 可以运行下面的命令&#xff0c;一键安装&#xff1a; wget http://fishros.com/install -O fishros && . fishros 1. 创建工作空间 本文假设配置完成 VS …

探索未来:Google I/O 2024 AI重磅发布一览

亲爱的读者们&#xff0c;大家期待已久的Google I/O开发者大会终于到来了&#xff01;今年的大会尤为特别&#xff0c;Google在发布会上大力强调了人工智能&#xff08;AI&#xff09;的重要性&#xff0c;可以说AI成为了绝对的主角。为了让大家快速了解今年的重点内容&#xf…

短视频创作者的9个免费实用的视频素材网站

在视频剪辑的过程中&#xff0c;找到高质量、无水印且可商用的视频素材是每个创作者的梦想。下面为大家推荐9个无水印素材网站&#xff0c;助你轻松获取所需的视频素材。 1. 蛙学府 - 提供丰富的高清视频素材&#xff0c;涵盖风景、人物、科技等类别。所有素材高清且可商用&…

2025秋招Java还是c++?

一、我的编程经 说说我的编程经历&#xff0c;在C和Java之间我经历了几个阶段&#xff1a; 大学期间&#xff0c;我浅尝辄止地学习了一段时间的Java&#xff0c;但后来放弃了&#xff0c;开始学习C/C。本科毕业后&#xff0c;我选择攻读硕士学位&#xff0c;并一直专注于C的学…

【错题集-编程题】空调遥控(二分 / 滑动窗口)

牛客对应题目链接&#xff1a;空调遥控 (nowcoder.com) 一、分析题目 1、滑动窗口 先排序&#xff0c;然后维护窗口内最大值与最小值的差在 2 * p 之间&#xff08;max - min&#xff09;。 2、二分查找 先排序&#xff0c;然后枚举所有的温度&#xff0c;⼆分出符合要求的…

C语言详解:数组指针

数组指针是指针 int* p[10] 这是指针数组的写法 &#xff0c;因为【】的优先级比*高&#xff0c; 所以为了解决优先级问题&#xff0c;加&#xff08;&#xff09; int(* p)[10]&arr;//数组的地址要存起来 说明p是指针&#xff08;首先与*结合&#xff09;&#xff0c…

python开发的学习路线

I. 基础知识学习 A. Python基础语法 变量和数据类型 学习如何定义变量&#xff0c;理解并使用不同的数据类型&#xff08;整数、浮点数、字符串、布尔值等&#xff09;。 掌握数字类型的转换和操作。 熟悉字符串的基本操作&#xff0c;如拼接、切片、替换和查找。 …

JVM内存模型最新面试题(持续更新)

问题&#xff1a;java中创建的对象一般放在哪里&#xff1f;(全流程包含从创建到回收) 回答 大部分对象在堆中&#xff0c;这个基本都知道&#xff1b; 少部分对象是会在栈中的&#xff0c;比如作用域不局限于方法内的方法内部变量&#xff0c;这类对象的特征一般就是生命周期…

JavaScript对象设计哲学:八种模式塑造高效代码

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、引言 &#x1f680;二、Object 构造函数 &#x1f9f1;&#x1f4cc; 基本用法&#x1f4cc; 重要性&#x1f4cc; 实际应用案例 三、对象字面量 &#x1f4d8;&#x1f4cc; 定义属性&#x1f4cc; 定义方法&#x1f4…

2.2、Gitea忘记密码重置密码

忘记密码后&#xff0c;管理员可以使用gitea的主程序输入命令重置密码。 gitea admin user change-password --username myname --password asecurepassword

工业派-配置Intel神经计算棒二代(NCS2)

最近两天在工业派ubuntu16.04上配置了Intel神经计算棒二代——Intel Neural Compute Stick&#xff0c;配置过程之艰辛我都不想说了&#xff0c;实在是太折磨人。不过历尽千辛万苦&#xff0c;总算让计算棒可以在工业派ubuntu16.04系统上跑了&#xff0c;还是蛮欣慰的。 注&…

数据分析案例-印度美食数据可视化分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

alphassl泛域名证书13个月600

AlphaSSL是GlobalSign旗下的数字证书品牌&#xff0c;它主要视为客户提供两种入门级的SSL证书——DV单域名以及泛域名SSL证书。这两种SSL证书一种可以保护www和两个域名记录&#xff0c;或者单个子域名激励&#xff1b;另一种可以同时保护多个域名记录&#xff0c;满足了大部分…

Django视图Views

Views视图 HttpRequest 和HttpResponse Django中的视图主要用来接受web请求&#xff0c;并做出响应。视图的本质就是一个Python中的函数视图的响应分为两大类 1)以Json数据形式返回(JsonResponse) 2)以网页的形式返回 2.1)重定向到另一个网页 (HttpRe…