1,卷积的原理。
2,举例
3,使用SAME模式,在矩阵的周围加0.
4,实现
import tensorflow as tf
import numpy as np
M=np.array([[[2],[1],[2],[-1]],[[0],[-1],[3],[0]],[[-2],[1],[-1],[4]],[[-2],[0],[-3],[4]]],
dtype='float32').reshape(1,4,4,1)
filter_weight=tf.get_variable("weight",[2,2,1,1],initializer=tf.constant_initializer([[-1,4],[2,1]]))
biases=tf.get_variable('biases',[1],initializer=tf.constant_initializer(1))
x= tf.placeholder('float32',[1,None,None,1])
conv=tf.nn.conv2d(x,filter_weight,strides=[1,1,1,1],padding="SAME")
add_bias=tf.nn.bias_add(conv,biases)
init_op=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
M_conv=sess.run(add_bias,feed_dict={x:M})
print M_conv
5,运行结果(注意加入了bias 1,原来的输出上都加了1)
[[[[ 2.]
[ 9.]
[ 1.]
[ 2.]]
[[ -6.]
[ 15.]
[ 0.]
[ 9.]]
[[ 3.]
[ -7.]
[ 16.]
[ 5.]]
[[ 3.]
[-11.]
[ 20.]
[ -3.]]]]