Tensorflow(添加噪声的方式)
在去噪自编码器中,模型的输入是原始的输入经过某种形式的加噪过程后的衰弱的形式,所以加噪声一般分为:加高斯白噪声,掩模噪声,椒盐噪声。
1.加性高斯噪声
self.scale = tf,placeholder(dtype = tf.float32)
self.x_corrupted = tf.add(self.x, self.scale*tf.random_normal(shape = (self.n_input,)))
2.掩模噪声
self.keep_prob = tf.placeholder(dtype = tf.float32)
self.x_corrupted = tf.nn.dropout(self.x, self.keep_prob)
3.椒盐噪声
def salt_and_pepper_noise(X,v)
X_noise = X.copy()
n_features = X.shape[1]
mn = X.min()
mx = X.max()
for i,sample in enumerate(X):
mask = np.random.randint(0,n_features,v)
for m in mask:
if np.random.rand() < .5:
X_noise[i][m] = mn
else:
X_noise[i][m] = mx
return X_noise
讲解:
1. enumerate(X):
此函数是python内带的一个函数,它的功能就是对一个可迭代,可遍历的对象组成一个序列,可以同时获取索引和值,说白了就是将一个个列表,字符串都全都团在一起,然后呢,用这个函数可以返回其中的每个元素,并返回每个元素所在的位置坐标。
要是我们呢既想遍历元素,又要遍历索引(元素所在的位置)就可以用for 循环来实现,就像上面的椒盐噪声添加的时候一样,i就是索引(元素的位置),sample就是每个元素
2..np.random.randint(low,high,size)
这个函数看起来就很简单了,随即产生一些数,这些数是什么呢,就是在定义的最大值和最小值之间来取,那么我们取多少呢,就看size,如果是1.......n之间的数字就会产生一行n列的元素,若是类似于(1,3),(2,6)等,那么就会形成一个数组矩阵
只有low
np.random.randint(2,size = 5)
array([0,1,1,1,1])
np.random.randint(5,size = (3,4))
array([[1,2,3,4],
[2,3,4,1],
[2,1,4,0]])
WARNING:low的值是取不到的,若是有high,则[low,high),也就是high取不到
Tensorflow(添加噪声的方式)的更多相关文章
- 详解Tensorflow数据读取有三种方式(next_batch)
转自:https://blog.csdn.net/lujiandong1/article/details/53376802 Tensorflow数据读取有三种方式: Preloaded data: 预 ...
- 关于无法把程序(Adobe Fireworks CS5)添加到打开方式的解决办法
关于无法把程序(Adobe Fireworks CS5)添加到打开方式的解决办法 最近换了新版的Adobe Fireworks CS5,发现打开图片文件时在右键“打开方式”里仍然是以前的Firewor ...
- PHP---TP框架---添加数据-----有三种方式
添加数据 添加数据有三种方式: 第一种: <?php namespace Home\Controller;//这个文件的命名空间 use Think\Controller;//use使用哪一个而 ...
- Linux添加快捷启动方式 (Ubuntu Debian CentOS)
ubuntu桌面快捷方式的创建 debian添加快捷启动方式 centos 6 桌面建立应用程序的快捷方式的方法 今天用着用着ubuntu,突然抽搐了,感觉特别别扭,特别不方便.新装的应用程序不好 ...
- Android两种为ViewPager+Fragment添加Tab的方式
在Android开发中ViewPager的使用是非常广泛的,而它不仅仅能够实现简单的开始引导页,还可以结合Fragment并添加Tab作为选项卡或为显示大批量页面实现强大的顺畅滑动 下面介绍两种为Vi ...
- Unity3D的按钮添加事件有三种方式
为Unity3D的按钮添加事件有三种方式,假设我们场景中有一个Canvas对象,Canvas对象中有一个Button对象. 方式一: 创建脚本ClickObject.cs,然后将脚本添加到Canvas ...
- 如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏)
问题:如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏) 在XP下,添加方式是直接把快捷方式复制到%appdata%\Microsoft\Internet Explorer\Qui ...
- ubuntu 14.04 Clion2016.2 安装激活与安装后添加快捷启动方式
参考链接:http://www.cnblogs.com/conw/p/5938113.html 下载clion for linux : http://www.jetbrains.com/clion/d ...
- matplotlib 添加注释的方式
matplotlib 添加注释的方式 matplotlib.pyplot.annotate Annotate the point xy with text s s : str The text of ...
随机推荐
- Java基础总结1
数据类型: byte 1字节 short 2字节 int 4字节 long 8字节 float 4字节 double 8字节 char 2字节 ...
- MySQL复制表-SELECT INTO FROM
基础Table: mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+------ ...
- 小米5查看设备号信息及验证type-c数据线
首先,下载adb软件. 接着打开系统的开发者模式和调试模式. 打开cmd软件,切换到adb软件文件夹所在路径,输入命令:adb devices,则能看到设备的设备号信息. 如果设备号是00000001 ...
- xlrd & xlwd
一.安装xlrd http://pypi.python.org/pypi/xlrd 二.使用介绍 1.导入模块 import xlrd 2.打开Excel文件读取数据 data = xlrd.open ...
- mysql 数据库的设计三范式
三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖; 解释: 1NF:原子性 字段不可再分,否则就不是关系数据库; 2NF:唯一性 一个表只说明一个事物 ...
- git checkout --ours 【学习笔记】
用新分支:git checkout --theirs 文件用master分支:git checkout --ours 文件 执行之后git add
- windows下安装git和vundle
git在windows下的版本是: git-for-windows, 或者说是: msysgit: ms-sys-git 直接在 https://gitforwindows.org/上下载 git对w ...
- 转载redis持久化的几种方式
redis持久化的几种方式 1.前言 Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服 ...
- mysql中data和datatime的区别
1.显示格式的区别 Date显示格式:YYYY-MM-DD:DateTime显示格式:YYYY-MM-DD HH:mm:ss. 2.显示范围的区别 Date显示范围是1601-01-01 到 9999 ...
- Struts2---动态action以及应用
为了处理各种逻辑业务,根据execute方法来判断请求哪种业务,然后将请求转发到对应的业务处理上, 通过动态请求action对象中的方法,实现某个单一的业务逻辑处理. 动态action的应用 //创建 ...