您的位置:首页 > 其它

小白学习FCN

2018-01-15 21:03 169 查看
1.FCN输出矩阵转换成图片

with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
C=sess.run(y)
C=C[0]
print(np.shape(C))
plt.imshow(C) # 显示图片
plt.axis('off') # 不显示坐标轴
plt.show()

2.卷积和反卷积
conv2=tf.nn.conv2d(pool1,conv2_weights,strides=[1,1,1,1],padding='SAME')  
tf.nn.conv2d_transpose(pool2,trans1_weights,output_shape=[1,128,128,3],strides=[1,2,2,1],padding='SAME')
       第一个参数value:指需要做卷积或反卷积的输入图像,它是一个Tensor

     第二个参数kernel:卷积核,它是一个Tensor,具有[filter_height, filter_width, out_channels, in_channels]这样的shape,具体含义是[卷积核的高度,卷积核的宽度,卷积核个数,图像通道数]

      第四个参数strides:反卷积时在图像每一维的步长,这是一个一维的向量,长度4

      第五个参数padding:string类型的量,只能是"SAME","VALID"其中之一,这个值决定了不同的卷积方式

     第六个参数data_format:string类型的量,默认值是'NHWC'
     第三个参数output_shape:反卷积操作输出的shape,卷积操作是没有这个参数的

      可以看出,卷积操作中strides=[1,1,1,1],因此卷积后图像尺寸不发生改变(一般用pooling);

反卷积为strides=[1,2,2,1],尺寸增加两倍,输出后的图像为128*128*3.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: