Tensorflow maxpooling在conv2d过滤器而不是atrous_conv2d

时间:2016-08-24 09:41:40

标签: computer-vision tensorflow

我想对图像的大块进行卷积。但我不想要太多变量,一个解决方案可能是使用atrous_conv2d函数,但我更愿意首先在补丁上应用max_pool,然后在常规conv2d上应用atrous_conv2d。我怎么能这样做?

我必须在输入和输出之间保持相同的图像大小。这里的代码带有x = tf.placeholder('float', shape=[None, size_x*size_y]) image = tf.reshape(x, [-1,size_x , size_y,1]) W = weight_variable([9, 9, 1, n]) conv =tf.nn.atrous_conv2d(image, W, 10, padding='SAME') 函数

atrous_conv2d

如果我理解正确max_pool卷积的补丁大小是(9 * 10 X 9 * 10),但它以10像素间隔作用于每个不同的像素,并且只需要9X9Xn个变量。

我希望采用相同的修补程序大小,对其应用conv2d,然后在max_pool生成的(9X9)修补程序上应用传统的x = tf.placeholder('float', shape=[None, size_x*size_y]) image = tf.reshape(x, [-1,size_x , size_y,1]) W = weight_variable([9, 9, 1, n]) def maxp(patch): tf.sum_reduce(tf.nn.max_pool(patch, ksize=[1,10,10,1], strides=[1,10,10,1], padding='SAME')*W) conv=conv_func(image,maxp,patch_size=[1,9*10,9*10,1],strides=[1,1,1,1]) 。最后它会产生相同数量的变量,但它可以提供更平滑的结果。代码可能如下所示:

conv_func

其中var app=angular.module("list",[]); app.controller("myctrl",function($scope){ $scope.get=function(){ $scope.thiss = false; } });将值,函数和patch_size作为参数,并在补丁上应用该函数。

0 个答案:

没有答案