高斯噪声层编码结构

10次浏览(过去30天)
jianY徐
jianY徐 2018年9月18日
回答: 杰克肖 2021年2月22日
我想创建一个特殊的层,为数据添加一些特殊的噪声。
但是我的matlab版本是2017b,我没有例子“gaussianNoiseLayer.m”。
该文件应该位于matlab 2018b或2018a版本的(matlabroot, 'examples', 'nnet', 'main', 'gaussianNoiseLayer.m')。
我很想知道添加噪声层的编码结构。
如果有好心人安装了最新版本的matlab,可以把这个文件发一份给我吗?
电子邮件: xjy1236@sina.com 非常感谢!!
1评论
MAHSA YOUSEFI
MAHSA YOUSEFI 2021年1月4日
嗨,剑。
添加噪音的问题解决了吗?
我想为每一层隐藏层添加高斯节点,并输入到我的定制训练循环中。

登录评论。

答案(1)

杰克肖
杰克肖 2021年2月22日
代码如下:
classdef gaussianNoiseLayer < nnet.layer.Layer . class
高斯噪声层
高斯噪声层将随机的高斯噪声添加到输入中。
要创建高斯噪声层,使用
% layer = gaussianNoiseLayer(sigma, name)
属性
%标准偏差。
σ
结束
方法
函数层= gaussianNoiseLayer(sigma, name)
% layer = gaussianNoiseLayer(sigma,name)创建一个高斯分布
%噪声层,并指定标准偏差和层
%的名字。
层。Name = Name;
层。描述=…
“带标准差的高斯噪声”+ sigma;
层。Type = "高斯噪声";
层。σ= sigma;
结束
函数Z = predict(图层,X)
% Z = predict(layer, X)将输入数据X通过
%层进行预测,并输出结果Z。
在预测时间,输出等于输入。
Z = x;
结束
函数[Z,内存]= forward(层,X)
% Z = forward(层,X)将输入数据X通过
并输出结果Z。
在训练时,该层将高斯噪声添加到输入中。
= layer.Sigma;
噪声= randn(大小(X)) * sigma;
Z = X +噪声;
内存= [];
结束
函数dLdX =向后(层,X, Z, dLdZ,内存)
% [dLdX, dLdAlpha] = backward(layer, X, Z, dLdZ, memory)
%向后传播损失函数的导数
%通过层。
由于该层添加了一个随机常数,其导数为dLdX
%等于dLdZ。
dLdX = dLdZ;
结束
结束
结束

下载188bet金宝搏


释放

R2018b

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!