截断正态分布(Truncated normal distribution)nn.init.trunc_normal_()

2024-01-20 09:50

本文主要是介绍截断正态分布(Truncated normal distribution)nn.init.trunc_normal_(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

截断正态分布概念:

Normal Distribution 称为正态分布,也称为高斯分布,Truncated Normal Distribution一般翻译为截断正态分布,也有称为截尾正态分布。

截断正态分布是截断分布(Truncated Distribution)的一种,那么截断分布是什么?截断分布是指,限制变量xx 取值范围(scope)的一种分布。例如,限制x取值在0到50之间,即{0<x<50}。因此,根据限制条件的不同,截断分布可以分为:

  1. 限制取值上限,例如,负无穷<x<50
  2. 限制取值下限,例如,0<x<正无穷
  3. 限下限取值都限制,例如,0<x<50

正态分布则可视为不进行任何截断的截断正态分布,也即自变量的取值为负无穷到正无穷;例如下图,我们将正态分布的变量范围限制在【-3,3】内,那么我们就说我们截断了正态分布

想要截断范围的正态分布的意图

  1. 限制变量的取值范围:截断正态分布可以限制变量的取值范围,以使得分布更符合实际情况。在某些领域中,如金融领域中的股票价格,截断正态分布可以更好地描述实际情况,因为它将对变量的最大值和最小值进行限制。

  2. 减少异常值的影响:在实际数据中,存在一些极端值或异常值,这些值可能会对分析结果产生不良影响。通过截断正态分布,可以将这些异常值排除在分布范围之外,从而减少它们对分析结果的影响。

  3. 更好的模型拟合:在某些情况下,正态分布可能不能很好地拟合实际数据。通过截断正态分布,可以改善模型的拟合效果,提高拟合的准确性。【例如:想要去拟合数据,根据观察原始数据分布在1的左右,在使用GAN生成数据的时候发现拟合不到,那么猜想可能是我生成虚假数据的时候范围有问题,所以想要限制范围的正态分布

  4. 更好的推断和预测:截断正态分布可以提高推断和预测的精度。在一些应用中,如概率统计、机器学习等领域,截断正态分布被广泛应用于数据建模和预测中。

截断了的正态分布还有正态的意义吗?

截断了的正态分布仍然有正态分布的意义。截断是指对正态分布进行了限制,使其只在某个区间内有定义。这种截断可能是单侧的或双侧的。截断的目的是限制变量的取值范围,以使得分布更符合实际情况。

截断了的正态分布仍然保留着正态分布的许多特征,比如它的均值、方差、标准差等。截断的影响主要表现在分布的尾部,即截断的区间之外。截断会使得分布在截断区间之外的概率变小,而在截断区间内的概率变大。

使用(可以规定正态分布的范围,均值,标准差...)

def trunc_normal_(tensor: Tensor, mean: float = 0., std: float = 1., a: float = -2., b: float = 2.) -> Tensor:
Args:tensor: an n-dimensional `torch.Tensor`mean: the mean of the normal distributionstd: the standard deviation of the normal distributiona: the minimum cutoff valueb: the maximum cutoff valueExamples:>>> w = torch.empty(3, 5)>>> nn.init.trunc_normal_(w)
"""

这篇关于截断正态分布(Truncated normal distribution)nn.init.trunc_normal_()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/625606

相关文章

Nn criterions don’t compute the gradient w.r.t. targets error「pytorch」 (debug笔记)

Nn criterions don’t compute the gradient w.r.t. targets error「pytorch」 ##一、 缘由及解决方法 把这个pytorch-ddpg|github搬到jupyter notebook上运行时,出现错误Nn criterions don’t compute the gradient w.r.t. targets error。注:我用

pytorch torch.nn.functional.one_hot函数介绍

torch.nn.functional.one_hot 是 PyTorch 中用于生成独热编码(one-hot encoding)张量的函数。独热编码是一种常用的编码方式,特别适用于分类任务或对离散的类别标签进行处理。该函数将整数张量的每个元素转换为一个独热向量。 函数签名 torch.nn.functional.one_hot(tensor, num_classes=-1) 参数 t

torch.nn 与 torch.nn.functional的区别?

区别 PyTorch中torch.nn与torch.nn.functional的区别是:1.继承方式不同;2.可训练参数不同;3.实现方式不同;4.调用方式不同。 1.继承方式不同 torch.nn 中的模块大多数是通过继承torch.nn.Module 类来实现的,这些模块都是Python 类,需要进行实例化才能使用。而torch.nn.functional 中的函数是直接调用的,无需

4.15 版本内核调用 init_timer()函数出错

linux/include/linux/timer.h4.15 之前版本struct timer_list {14 /*15 * All fields that change during normal runtime grouped to the16 * same cacheline17 */18 struct hl

Python方法:__init__,__new__,__class__的使用详解

转自:https://blog.csdn.net/qq_26442553/article/details/82464682 因为python中所有类默认继承object类。而object类提供了了很多原始的内建属性和方法,所以用户自定义的类在Python中也会继承这些内建属性。可以使用dir()函数可以查看,虽然python提供了很多内建属性但实际开发中常用的不多。而很多系统提供的内建属性实际

_no_init的作用

__no_init用于禁止系统启动时的变量初始化,什么情况下需要用这个关键字使系统禁止变量的初始化,禁止变量初始化用在什么场合,为什么要这样做,有什么意义吗? 1、看门狗复位的现场恢复,如果初始化了就完全不可恢复了 2、使用nvram保存数据,需要连续记录的。    我有个变量,需要在系统意外复位时,这个变量值能保留,所以采用__no_init来实现,只是上电的时候这个值不是零

力士乐驱动主板CSB01.1N-SE-ENS-NNN-NN-S-N-FW

力士乐驱动主板CSB01.1N-SE-ENS-NNN-NN-S-N-FW ‌力士乐驱动器的使用说明主要涉及软件安装、参数配置、PID调节等方面。‌  ‌软件安装‌:安装过程涉及多个步骤,首先需要打开安装文件夹中的CD1,双击setup.exe进行安装。在安装过程中,需要选择语言、接受许可协议、输入安装名称、选择安装目录等。整个安装过程可能需要10多分钟,取决于电脑性能。安装完成后,需要重启计算

iOS中alloc与init

面向对象的3大特性,封装继承和多态. 我遇到过封装相关的问题,因为初级封装简单,常常暴露出被你封装的接口,进一步进行高级封装隐藏接口的时候才发现,封装是一门学问,而这门学问得从最基础的alloc与init讲起.   FatherModel.h #import <Foundation/Foundation.h>@interface FatherModel : NSObject@en

优雅的写init方法

怎么写出高质量的init方法,以下是demo可参考实现,代码实现。 public class BaseTestController {private UnitTest unitTest;public void init(String url, String accessToken){unitTest = UnitTest.getNewInstance();unitTest.setHost(ur

Android14音频进阶之定制ramdisk文件系统init服务(八十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧