tf.nn.conv2d

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

    指需要做卷积的输入图像,它要求是一个Tensor,具有[batch, in_height, in_width,
    in_channels]这样的shape,具体含义是[训练时一个batch的图片数量, 图片高度, 图片宽度,
    图像通道数],注意这是一个4维的Tensor,要求类型为float32和float64其中之一

  • filter:

    相当于CNN中的卷积核,它要求是一个Tensor,具有[filter_height, filter_width, in_channels,
    out_channels]这样的shape,具体含义是[卷积核的高度,卷积核的宽度,图像通道数,卷积核个数],要求类型与参数input相同,有一个地方需要注意,第三维in_channels,就是参数input的第四维

  • strides:卷积时在图像每一维的步长,这是一个一维的向量,长度4
  • padding:

    string类型的量,只能是”SAME”,”VALID”其中之一,这个值决定了不同的卷积方式(后面会介绍)

  • use_cudnn_on_gpu:

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

结果返回一个Tensor,这个输出,就是我们常说的feature map

name是啥?

strides[1,1,1,1]和strides[1,2,2,1]啥关系?

input = tf.Variable(tf.random_normal([1,5,5,5]))
filter = tf.Variable(tf.random_normal([3,3,5,7]))

op = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding=‘SAME‘)此时输出7张5×5的feature map


input = tf.Variable(tf.random_normal([1,5,5,5]))
filter = tf.Variable(tf.random_normal([3,3,5,7]))

op = tf.nn.conv2d(input, filter, strides=[1, 2, 2, 1], padding=‘SAME‘)此时,输出7张3×3的feature map

http://blog.csdn.net/mao_xiao_feng/article/details/78004522


 
时间: 2024-12-25 22:45:09

tf.nn.conv2d的相关文章

TF-卷积函数 tf.nn.conv2d 介绍

转自 http://www.cnblogs.com/welhzh/p/6607581.html 下面是这位博主自己的翻译加上测试心得 tf.nn.conv2d是TensorFlow里面实现卷积的函数,参考文档对它的介绍并不是很详细,实际上这是搭建卷积神经网络比较核心的一个方法,非常重要 tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None) 除去name参数用以指定该操作的name,与方法有关

TensorFlow 从入门到精通(八):TensorFlow tf.nn.conv2d 一路追查

读者可能还记得本系列博客(二)和(六)中 tf.nn 模块,其中最关心的是 conv2d 这个函数. 首先将博客(二) MNIST 例程中 convolutional.py 关键源码列出: def model(data, train=False): """The Model definition.""" # 2D convolution, with 'SAME' padding (i.e. the output feature map has #

tf.nn.conv2d 和 tf.nn.max_pool 中 padding 分别为 'VALID' 和 'SAME' 的直觉上的经验和测试代码

这个地方一开始是迷糊的,写代码做比较分析,总结出直觉上的经验. 某人若想看精准的解释,移步这个网址(http://blog.csdn.net/fireflychh/article/details/73743849),但我觉得直觉上的经验更有用,如下: 直觉上的经验: 一件确定的事: padding 无论取 'SAME' 还是取 'VALID', 它在 conv2d 和 max_pool 上的表现是一致的; padding = 'SAME' 时,输出并不一定和原图size一致,但会保证覆盖原图所有

tf.nn的conv2d卷积与max_pool池化

tf.nn.conv2d(value,filter,strides,[...]) 对于图片来说 value :   形状通常是np.array()类型的4维数组也称tensor(张量),  (batch,height,width,channels) 可以理解为(图片样本的个数,高,宽,图片的颜色通道数) value是待卷积的数据 filter: 卷积核 -4元素元组[height,width,in_channels,out_channels],前面的3个参数和value的后面3个参数一一对应.但

tensorflow-tf.nn.conv2d卷积运算(2)

tf.nn.conv2d( input, filter, strides, padding, use_cudnn_on_gpu=True, data_format='NHWC', dilations=[1, 1, 1, 1], name=None ) 计算给定4d输入和过滤核张量的二维卷积. 给定形状[batch,in_height, in_width, in_channels]的输入张量和形状[filter_height, filter_width, in_channels, out_chan

深度学习原理与框架-CNN在文本分类的应用 1.tf.nn.embedding_lookup(根据索引数据从数据中取出数据) 2.saver.restore(加载sess参数)

1. tf.nn.embedding_lookup(W, X) W的维度为[len(vocabulary_list), 128], X的维度为[?, 8],组合后的维度为[?, 8, 128] 代码说明一下:即根据每一行X中的一个数,从W中取出对应行的128个数据,比如X[1, 3]个数据是3062,即从W中的第3062行取出128个数据 import numpy as np import tensorflow as tf data = np.array([[2, 1], [3, 4], [5,

CNN之池化层tf.nn.max_pool|tf.nn.avg_pool|tf.reduce_mean

摘要:池化层的主要目的是降维,通过滤波器映射区域内取最大值.平均值等操作. 均值池化:tf.nn.avg_pool(input,ksize,strides,padding) 最大池化:tf.nn.max_pool(input,ksize,strides,padding) input:通常情况下是卷积层输出的featuremap,shape=[batch,height,width,channels]              假定这个矩阵就是卷积层输出的featuremap(2通道输出)  他的s

tf.nn.embedding_lookup()

一直想解决如果在tensorflow中按照需求组装向量,于是发现了这个函数 tf.nn.embedding_lookup(params, ids, partition_strategy=’mod’, name=None, validate_indices=True, max_norm=None) 除了前两个参数,其他参数暂时还不知道怎么使用.然而这并不影响实现程序. params放全部的向量,也就是在文本学习中的所有字符对应的向量 ids放置索引的数组,也就是要挑选出来的字符的索引号.

Tensorflow四种交叉熵函数计算公式:tf.nn.cross_entropy

Tensorflow交叉熵函数:cross_entropy 注意:tensorflow交叉熵计算函数输入中的logits都不是softmax或sigmoid的输出,而是softmax或sigmoid函数的输入,因为它在函数内部进行sigmoid或softmax操作   tf.nn.sigmoid_cross_entropy_with_logits(_sentinel=None,labels=None, logits=None, name=None) argument: _sentinel:本质上