Tensotflow1.0入门(四)-tensorflow的卷积函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011311291/article/details/89000644

卷积函数的定义在tensorflow/python/ops/nn.py,但其实这个nn.py是由很多别的文件中的类和方法组成的,其中激活函数也包含在内了,而卷积函数的定义主要在nn_impl.py和nn_ops.py

tf.nn.convolution(input, filter, padding, strides, dilation_rate, name, data_format)
tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu, data_format, name)
tf.nn.depthwise_conv2d(input, filter, strides, padding, rate, name)
tf.nn.separable_conv2d(input, depthwise_filter, pointwise_filter, strides, padding, rate, name)
tf.nn.atrous_conv2d(value, filters, rate, padding, name)
tf.nn.conv2d_transpose(value, filter, output_shape, strides, padding, data_format, name)
tf.nn.conv1d(value, filters, stride, padding, use_cudnn_on_gpu, data_format, name)
tf.nn.conv3d(input, filter, strides, padding, name)
tf.nn.conv3d_transpose(value, filter, output_shape, strides, padding, name)

#参数
input: Tensor,数据类型必须是float32或者64
filter: Tensor,数据类型要与input相同
strides: 一个长度为4的一维整数类型数组
padding: 字符串,“SAME”|“VALID”,SAME输入数据维度和输出维度相同
name: 操作的名字

import tensorflow as tf
import numpy as np

# (batch_size,w,h,channels_last)=(32,9,9,3)
input_data = tf.Variable(np.random.rand(32,9,9,3),dtype=np.float32)
# (w,h,channels_last,filter_nums)=(32,9,9,3)
filter_data = tf.Variable(np.random.rand(2,2,3,5),dtype=np.float32)
# y = tf.nn.convolution(input_data, filter_data, strides=[1,1], padding="SAME")
y = tf.nn.conv2d(input_data, filter_data, strides=[1,1,1,1], padding="SAME")
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
print(sess.run(y).shape)

参考:《TensorFlow 技术解析与实战》

猜你喜欢

转载自blog.csdn.net/u011311291/article/details/89000644
今日推荐