在去噪自编码器中,模型的输入是原始的输入经过某种形式的加噪过程后的衰弱的形式,所以加噪声一般分为:加高斯白噪声,掩模噪声,椒盐噪声。

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(添加噪声的方式)的更多相关文章

  1. 详解Tensorflow数据读取有三种方式(next_batch)

    转自:https://blog.csdn.net/lujiandong1/article/details/53376802 Tensorflow数据读取有三种方式: Preloaded data: 预 ...

  2. 关于无法把程序(Adobe Fireworks CS5)添加到打开方式的解决办法

    关于无法把程序(Adobe Fireworks CS5)添加到打开方式的解决办法 最近换了新版的Adobe Fireworks CS5,发现打开图片文件时在右键“打开方式”里仍然是以前的Firewor ...

  3. PHP---TP框架---添加数据-----有三种方式

    添加数据 添加数据有三种方式: 第一种: <?php namespace Home\Controller;//这个文件的命名空间 use Think\Controller;//use使用哪一个而 ...

  4. Linux添加快捷启动方式 (Ubuntu Debian CentOS)

    ubuntu桌面快捷方式的创建 debian添加快捷启动方式 centos 6 桌面建立应用程序的快捷方式的方法   今天用着用着ubuntu,突然抽搐了,感觉特别别扭,特别不方便.新装的应用程序不好 ...

  5. Android两种为ViewPager+Fragment添加Tab的方式

    在Android开发中ViewPager的使用是非常广泛的,而它不仅仅能够实现简单的开始引导页,还可以结合Fragment并添加Tab作为选项卡或为显示大批量页面实现强大的顺畅滑动 下面介绍两种为Vi ...

  6. Unity3D的按钮添加事件有三种方式

    为Unity3D的按钮添加事件有三种方式,假设我们场景中有一个Canvas对象,Canvas对象中有一个Button对象. 方式一: 创建脚本ClickObject.cs,然后将脚本添加到Canvas ...

  7. 如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏)

    问题:如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏) 在XP下,添加方式是直接把快捷方式复制到%appdata%\Microsoft\Internet Explorer\Qui ...

  8. ubuntu 14.04 Clion2016.2 安装激活与安装后添加快捷启动方式

    参考链接:http://www.cnblogs.com/conw/p/5938113.html 下载clion for linux : http://www.jetbrains.com/clion/d ...

  9. matplotlib 添加注释的方式

    matplotlib 添加注释的方式 matplotlib.pyplot.annotate Annotate the point xy with text s s : str The text of ...

随机推荐

  1. bzoj4665 小w的喜糖(dp+容斥)

    4665: 小w的喜糖 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 222  Solved: 130[Submit][Status][Discuss ...

  2. 使用Semaphore同步,经典银行账户问题

    1.新建Account类,使用Semaphore同步增加和减少金额方法. package com.xkzhangsan.semaphorepack.bank; import java.util.con ...

  3. concurrent.futures进行并发编程

    Python中进行并发编程一般使用threading和multiprocessing模块,不过大部分的并发编程任务都是派生一系列线程,从队列中收集资源,然后用队列收集结果.在这些任务中,往往需要生成线 ...

  4. 解决 “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏;使用“rename”限定符 类型库符号与系统符号冲突问题

    今天在VS工程当中引入一个组件,编译的时候出现警告, “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏:使用“rename”限定符.虽然只是一个警告,但看着实在不爽,更重要的是,警告 ...

  5. linux设置静态IP及网卡选择

    linux中使用ifconfig命令查看网卡信息时显示为eth1,但是在network-scripts中只有ifcfg-eth0的配置文件,并且里面的NAME="eth0".   ...

  6. 解决 scapy “NameError: global name 'wrpcap' is not defined” 错误

    解决 scapy "NameError: global name 'wrpcap' is not defined" 错误 通过 scapy 编写发包脚本时遇到如下错误: Trace ...

  7. python笔记--异常处理

    Python异常处理 常见异常 AttributeError:属性错误,特性引用和赋值失败时会引发属性错误 NameError:试图访问的变量名不存在 SyntaxError:语法错误,代码形式错误 ...

  8. CSRF、XSS、clickjacking、SQL 的攻击与防御

    CSRF攻击 原理: 跨站请求伪造.是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法. 网站通过cookie来实现登录功能.而cookie只要存在浏览器中,那么浏览器在访问含有这 ...

  9. /etc/security/limits.conf不生效

    总结下来发现要使limits.conf生效,需要在  /etc/ssh/sshd_config  配置中 设置 UsePAM  yes UseLogin yes    #这个保证其他的用户也能修改设置 ...

  10. highcharts数据标签显示在柱状图里面解决办法

    1.现象:当各项占比相同时,数据显示在柱状图里面 2.解决方法: 3.效果