TensorFlow卷积神经网络 tf.nn.conv2d方法及图像化

TensorFlow卷积神经网络

 

一、方法定义

tf.nn.conv2d (input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)

 

参数:

**input : ** 输入的要做卷积的图片,要求为一个张量,shape为 [ batch, in_height, in_weight, in_channel ],其中batch为图片的数量,in_height 为图片高度,in_weight 为图片宽度,in_channel 为图片的通道数,灰度图该值为1,彩色图为3。(也可以用其它值,但是具体含义不是很理解)

filter: 卷积核,要求也是一个张量,shape为 [ filter_height, filter_weight, in_channel, out_channels ],其中 filter_height 为卷积核高度,filter_weight 为卷积核宽度,in_channel 是图像通道数 ,和 input 的 in_channel 要保持一致,out_channel 是卷积核数量。

strides: 卷积时在图像每一维的步长,这是一个一维的向量,[ 1, strides, strides, 1],第一位和最后一位固定必须是1

padding: string类型,值为“SAME” 和 “VALID”,表示的是卷积的形式,是否考虑边界。"SAME"是考虑边界,不足的时候用0去填充周围,"VALID"则不考虑

use_cudnn_on_gpu: bool类型,是否使用cudnn加速,默认为true

---------------------

  • 个人理解

以上内容在网上会搜到很多,下面详细介绍,输入的几个重要参数input, filter, strides,对于不同的参数得到的张量不同。

举例:

  1. 要卷积的图片input:[1,m,m,n] 1表示数量,m*m为图像大小,n为图片通道数
  2. 卷积核filter:[2,2,n,a] 2*2为卷积核大小,n为图片通道数,a为卷积核个数,n个通道输入,生成a个feature map
  3. 步长strides:[1,x,x,1]各个维度移动的步长,根据实际修改数值

若tf.nn.conv2d输入以上三个参数并且padding=”SAME”,则结果为[1,m/x,m/x,a] :1为数据数量

 

下面来看看lena图像进行卷积前后的结果显示 也是sobel算法

import matplotlib.pyplot as plt  # plt 用于显示图片
import matplotlib.image as mp  # mp 用于读取图片
import

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值