paddlepaddle学习卷积神经网络

案例1——简单的黑白边界检测

下述代码通过一个一维,单通道,单个卷积核对图片进行黑白边界的检测。

为了弄清楚他具体是怎么实现的我对下面类库进行了学习

1.Conv2D

in_channels 表示输入通道,此次为黑白检测所以只有一层out_channels 表示输出通道,也仅有一层。kernel_size 卷积核的大小,一维三行。

最重要的机器学习的代码则为下列两行,权值调用paddleParamAttr函数。

weight_attr=paddle.ParamAttr(

    initializer=Assign(value=w)

ParamAttr函数initializer (Initializer,可选) - 参数的初始化方式。

AssignAssign相当于连线,一般是将一个变量的值不间断地赋值给另一个变量,就像把这两个变量连在一起,所以习惯性的当做连线用,比如把一个模块的输出给另一个模块当输入。

所以代码的意思就是,将权值不断的初始化为w的值。

代码 y = conv(x)就是将x图像通过卷积核进行卷积,结果为y,然后输出。

paddlepaddle学习卷积神经网络_第1张图片

paddlepaddle学习卷积神经网络_第2张图片

paddlepaddle学习卷积神经网络_第3张图片

paddlepaddle学习卷积神经网络_第4张图片

案例2——图像中物体边缘检测

下述代码与第一个的区别较小,只是换了一个三通道的图片,和3*3的卷积核,如下,权值为w = np.array([[-1,-1,-1],
              [-1,8,-1],
              [-1,-1,-1]], dtype='float32')/8 
的卷积核可以将图片的边缘解析出来。

然后将原图片转换成矩阵的形式,通过conv处理,显示出图像的边缘信息。

paddlepaddle学习卷积神经网络_第5张图片

paddlepaddle学习卷积神经网络_第6张图片

paddlepaddle学习卷积神经网络_第7张图片

案例3——图像均值模糊

通过修改卷积核实现对图像噪点的模糊处理,呈现出第二个图片。

w = np.ones([1, 1, 5, 5], dtype = 'float32')/25

如上卷积核可将图像处理成较为模糊的图像。

paddlepaddle学习卷积神经网络_第8张图片

paddlepaddle学习卷积神经网络_第9张图片

你可能感兴趣的:(paddlepaddle,学习,cnn)