pytorch中torch.bernoulli的使用方法-随机丢弃数据中的部分数据

2024-03-03 18:04

本文主要是介绍pytorch中torch.bernoulli的使用方法-随机丢弃数据中的部分数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天在学习深度学习代码时,使用到如何将数据中的嵌入信息进行随机的丢弃。
在 PyTorch 中,torch.bernoulli 是用于生成服从伯努利分布的随机张量的函数。伯努利分布是一种二元分布,产生的值为0或1,具有概率 p 和 1-p。

语法

torch.bernoulli(input, *, generator=None, out=None) -> Tensor

input(张量):一个包含概率值的张量。每个元素表示生成的随机数为1的概率。张量的元素值必须在区间 [0, 1] 中。生成的随机数在对应位置上的概率为该位置上的值。

generator(Generator,可选):用于生成随机数的随机数生成器。

out(张量,可选):输出张量。如果提供了此参数,则结果将被写入这个张量。否则,将创建一个新的张量并返回。

返回值

一个与输入张量具有相同形状的张量,其中每个元素都是根据输入张量中对应位置上的概率值生成的随机数。生成的随机数为1的概率由输入张量中对应位置上的值确定。

具体应用代码

def dropout(x, drop_prob, shared_axes=[], training=False):"""Apply dropout to input tensor.Parameters----------input_tensor: ``torch.FloatTensor``A tensor of shape ``(batch_size, ..., num_timesteps, embedding_dim)``Returns-------output: ``torch.FloatTensor``A tensor of shape ``(batch_size, ..., num_timesteps, embedding_dim)`` with dropout applied."""if drop_prob == 0 or drop_prob == None or (not training):return xsz = list(x.size())for i in shared_axes:sz[i] = 1x_new = x.new(*sz)x_bernoulli = x_new.bernoulli_(1. - drop_prob)mask = x_bernoulli.div_(1. - drop_prob)mask = mask.expand_as(x)return x * mask

这篇关于pytorch中torch.bernoulli的使用方法-随机丢弃数据中的部分数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

pytorch之torch.flatten()和torch.nn.Flatten()的用法

《pytorch之torch.flatten()和torch.nn.Flatten()的用法》:本文主要介绍pytorch之torch.flatten()和torch.nn.Flatten()的用... 目录torch.flatten()和torch.nn.Flatten()的用法下面举例说明总结torch

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave