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

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. python操作pymysql数据库

    首先需要导入通过import pymysql导入数据库模块 已经创建好一个数据库test,数据库中有一个空表t,只有两个字段id int(5),name varchar(20) import pymy ...

  2. 原创《开源一个用 vue 写的树层级组件 vue-ztree》

    最近由于后台管理项目的需要,页面需要制作一个无限树的需求,我第一感就想到了插件 ztree,不过我觉得它太大了,还是自己动手丰衣足食吧. ztree 的 demo 地址:http://www.tree ...

  3. android架构原理

    应用层(与用户打交道) 应用架构层(常用的组件和服务) 系统运行层(Android运行环境+原生c/c++库) Linux核心层(linux内核+硬件抽象层)

  4. VueScroller 使用

    下载插件  npm install vue-scroller -D 引入插件: import Vue from 'vue'import VueScroller from 'vue-scroller' ...

  5. Linux Git用户组

    Vivien: groupadd admin useradd -d /home/bill -s /bin/bash -m bill 用户组 查看用户列表 cat /etc/passwd 或者 cat ...

  6. BZOJ 4259 残缺的字符串

    思路 同样是FFT进行字符串匹配 只不过两个都有通配符 匹配函数再乘一个\(A_i\)即可 代码 #include <cstdio> #include <algorithm> ...

  7. centos 7安装phantomjs

    centos 7安装phantomjs wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_6 ...

  8. Job for docker.service failed because the control process exited with error

    Docker 无法启动 报错信息:Job for docker.service failed because the control process exited with error 找了很久才解决 ...

  9. 二、Python数据类型(一)

    一.Python的基本输入与输出语句 (一)输出语句 print() 示例: print('你好,Python') print(4+5) a = 10 print(a) 输出的内容可以是字符串,变量, ...

  10. Project Euler 345: Matrix Sum

    题目 思路: 将问题转化成最小费用流 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #incl ...