Closed Hub-Tian closed 6 years ago
Hey, @Hub-Tian. Since the max pooling k_size [90, 90] is designed for input data [713, 713]. (output stride = 8 => 713 / 8). If you want to use [320, 320] as input, you can modify k_size in model.py
:
(self.feed('conv5_3/relu')
.avg_pool(40, 40, 40, 40, name='conv5_3_pool1')
.conv(1, 1, 512, 1, 1, biased=False, relu=False, name='conv5_3_pool1_conv')
.batch_normalization(relu=True, name='conv5_3_pool1_conv_bn')
.resize_bilinear(shape, name='conv5_3_pool1_interp'))
(self.feed('conv5_3/relu')
.avg_pool(30, 30, 30, 30, name='conv5_3_pool2')
.conv(1, 1, 512, 1, 1, biased=False, relu=False, name='conv5_3_pool2_conv')
.batch_normalization(relu=True, name='conv5_3_pool2_conv_bn')
.resize_bilinear(shape, name='conv5_3_pool2_interp'))
(self.feed('conv5_3/relu')
.avg_pool(20, 20, 20, 20, name='conv5_3_pool3')
.conv(1, 1, 512, 1, 1, biased=False, relu=False, name='conv5_3_pool3_conv')
.batch_normalization(relu=True, name='conv5_3_pool3_conv_bn')
.resize_bilinear(shape, name='conv5_3_pool3_interp'))
(self.feed('conv5_3/relu')
.avg_pool(10, 10, 10, 10, name='conv5_3_pool6')
.conv(1, 1, 512, 1, 1, biased=False, relu=False, name='conv5_3_pool6_conv')
.batch_normalization(relu=True, name='conv5_3_pool6_conv_bn')
.resize_bilinear(shape, name='conv5_3_pool6_interp'))
If you have other question, feel free to ask me !
It worked after changing the parameters like you said. Thank you so much!
I am using my own data to train a new PSPNet, but error occured like this. The size of my data is [320,320], and I changed the parameters like INPUT_SIZE = '320,320' and IMG_MEAN. Could you give me some advice about this problem? Thanks!
Traceback (most recent call last): File "./train.py", line 216, in
main()
File "./train.py", line 121, in main
net = PSPNet({'data': image_batch}, is_training=True, num_classes=args.num_classes)
File "/home/tianyl/CCF/PSPNet-tensorflow-master/network.py", line 48, in init
self.setup(is_training, num_classes)
File "/home/tianyl/CCF/PSPNet-tensorflow-master/model.py", line 439, in setup
.avg_pool(90, 90, 90, 90, name='conv5_3_pool1')
File "/home/tianyl/CCF/PSPNet-tensorflow-master/network.py", line 21, in layer_decorated
layer_output = op(self, layer_input, *args, **kwargs)
File "/home/tianyl/CCF/PSPNet-tensorflow-master/network.py", line 193, in avg_pool
data_format=DEFAULT_DATAFORMAT)
File "/home/tianyl/anaconda2/envs/tensorflow1.3/lib/python2.7/site-packages/tensorflow/python/ops/nn_ops.py", line 1744, in avg_pool
name=name)
File "/home/tianyl/anaconda2/envs/tensorflow1.3/lib/python2.7/site-packages/tensorflow/python/ops/gen_nn_ops.py", line 48, in _avg_pool
data_format=data_format, name=name)
File "/home/tianyl/anaconda2/envs/tensorflow1.3/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 767, in apply_op
op_def=op_def)
File "/home/tianyl/anaconda2/envs/tensorflow1.3/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2630, in create_op
set_shapes_for_outputs(ret)
File "/home/tianyl/anaconda2/envs/tensorflow1.3/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1909, in set_shapes_for_outputs
shapes = shape_func(op)
File "/home/tianyl/anaconda2/envs/tensorflow1.3/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1859, in call_with_requiring
return call_cpp_shape_fn(op, require_shape_fn=True)
File "/home/tianyl/anaconda2/envs/tensorflow1.3/lib/python2.7/site-packages/tensorflow/python/framework/common_shapes.py", line 595, in call_cpp_shape_fn
require_shape_fn)
File "/home/tianyl/anaconda2/envs/tensorflow1.3/lib/python2.7/site-packages/tensorflow/python/framework/common_shapes.py", line 659, in _call_cpp_shape_fn_impl
raise ValueError(err.message)
ValueError: Negative dimension size caused by subtracting 90 from 40 for 'conv5_3_pool1' (op: 'AvgPool') with input shapes: [4,40,40,2048].