>python pspnet.py Namespace(flip=False, id='0', input_path='example_images/ade20k.jpg', model='pspnet50_ade20k', multi_scale=False, output_path='example_results/ade20k.jpg', sliding=False) No Keras model & weights found, import from npy weights. Building a PSPNet based on ResNet 50 expecting inputs of shape (473, 473) predicting 150 classes PSP module will interpolate to a final feature map size of (60, 60) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) /home/hab/libs/PSPNet-Keras-tensorflow/pspnet.py in () 263 if "pspnet50" in args.model: 264 pspnet = PSPNet50(nb_classes=150, input_shape=(473, 473), --> 265 weights=args.model) 266 elif "pspnet101" in args.model: 267 if "cityscapes" in args.model: /home/hab/libs/PSPNet-Keras-tensorflow/pspnet.py in __init__(self, nb_classes, weights, input_shape) 140 """Instanciate a PSPNet50.""" 141 PSPNet.__init__(self, nb_classes=nb_classes, resnet_layers=50, --> 142 input_shape=input_shape, weights=weights) 143 144 /home/hab/libs/PSPNet-Keras-tensorflow/pspnet.py in __init__(self, nb_classes, resnet_layers, input_shape, weights) 45 self.model = layers.build_pspnet(nb_classes=nb_classes, 46 resnet_layers=resnet_layers, ---> 47 input_shape=self.input_shape) 48 self.set_npy_weights(weights) 49 /home/hab/libs/PSPNet-Keras-tensorflow/layers_builder.py in build_pspnet(nb_classes, resnet_layers, input_shape, activation) 210 inp = Input((input_shape[0], input_shape[1], 3)) 211 res = ResNet(inp, layers=resnet_layers) --> 212 psp = build_pyramid_pooling_module(res, input_shape) 213 214 x = Conv2D(512, (3, 3), strides=(1, 1), padding="same", name="conv5_4", /home/hab/libs/PSPNet-Keras-tensorflow/layers_builder.py in build_pyramid_pooling_module(res, input_shape) 190 print("PSP module will interpolate to a final feature map size of %s" % (feature_map_size, )) 191 --> 192 interp_block1 = interp_block(res, 6, feature_map_size, str_lvl=1) 193 interp_block2 = interp_block(res, 3, feature_map_size, str_lvl=2) 194 interp_block3 = interp_block(res, 2, feature_map_size, str_lvl=3) /home/hab/libs/PSPNet-Keras-tensorflow/layers_builder.py in interp_block(prev_layer, level, feature_map_shape, str_lvl) 175 kernel = (10*level, 10*level) 176 strides = (10*level, 10*level) --> 177 prev_layer = AveragePooling2D(kernel, strides=strides)(prev_layer) 178 prev_layer = Conv2D(512, (1, 1), strides=(1, 1), name=names[0], 179 use_bias=False)(prev_layer) /home/hab/libs/PSPNet-Keras-tensorflow/pspnet_ve/lib/python3.5/site-packages/keras/engine/topology.py in __call__(self, inputs, **kwargs) 600 601 # Actually call the layer, collecting output(s), mask(s), and shape(s). --> 602 output = self.call(inputs, **kwargs) 603 output_mask = self.compute_mask(inputs, previous_mask) 604 /home/hab/libs/PSPNet-Keras-tensorflow/pspnet_ve/lib/python3.5/site-packages/keras/layers/pooling.py in call(self, inputs) 152 strides=self.strides, 153 padding=self.padding, --> 154 data_format=self.data_format) 155 return output 156 /home/hab/libs/PSPNet-Keras-tensorflow/pspnet_ve/lib/python3.5/site-packages/keras/layers/pooling.py in _pooling_function(self, inputs, pool_size, strides, padding, data_format) 269 padding, data_format): 270 output = K.pool2d(inputs, pool_size, strides, --> 271 padding, data_format, pool_mode='avg') 272 return output 273 /home/hab/libs/PSPNet-Keras-tensorflow/pspnet_ve/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py in pool2d(x, pool_size, strides, padding, data_format, pool_mode) 3386 x = tf.nn.max_pool(x, pool_size, strides, padding=padding) 3387 elif pool_mode == 'avg': -> 3388 x = tf.nn.avg_pool(x, pool_size, strides, padding=padding) 3389 else: 3390 raise ValueError('Invalid pooling mode:', pool_mode) /home/hab/libs/PSPNet-Keras-tensorflow/pspnet_ve/lib/python3.5/site-packages/tensorflow/python/ops/nn_ops.py in avg_pool(value, ksize, strides, padding, data_format, name) 1742 padding=padding, 1743 data_format=data_format, -> 1744 name=name) 1745 1746 /home/hab/libs/PSPNet-Keras-tensorflow/pspnet_ve/lib/python3.5/site-packages/tensorflow/python/ops/gen_nn_ops.py in _avg_pool(value, ksize, strides, padding, data_format, name) 44 result = _op_def_lib.apply_op("AvgPool", value=value, ksize=ksize, 45 strides=strides, padding=padding, ---> 46 data_format=data_format, name=name) 47 return result 48 /home/hab/libs/PSPNet-Keras-tensorflow/pspnet_ve/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py in apply_op(self, op_type_name, name, **keywords) 765 op = g.create_op(op_type_name, inputs, output_types, name=scope, 766 input_types=input_types, attrs=attr_protos, --> 767 op_def=op_def) 768 if output_structure: 769 outputs = op.outputs /home/hab/libs/PSPNet-Keras-tensorflow/pspnet_ve/lib/python3.5/site-packages/tensorflow/python/framework/ops.py in create_op(self, op_type, inputs, dtypes, input_types, name, attrs, op_def, compute_shapes, compute_device) 2630 original_op=self._default_original_op, op_def=op_def) 2631 if compute_shapes: -> 2632 set_shapes_for_outputs(ret) 2633 self._add_op(ret) 2634 self._record_op_seen_by_control_dependencies(ret) /home/hab/libs/PSPNet-Keras-tensorflow/pspnet_ve/lib/python3.5/site-packages/tensorflow/python/framework/ops.py in set_shapes_for_outputs(op) 1909 shape_func = _call_cpp_shape_fn_and_require_op 1910 -> 1911 shapes = shape_func(op) 1912 if shapes is None: 1913 raise RuntimeError( /home/hab/libs/PSPNet-Keras-tensorflow/pspnet_ve/lib/python3.5/site-packages/tensorflow/python/framework/ops.py in call_with_requiring(op) 1859 1860 def call_with_requiring(op): -> 1861 return call_cpp_shape_fn(op, require_shape_fn=True) 1862 1863 _call_cpp_shape_fn_and_require_op = call_with_requiring /home/hab/libs/PSPNet-Keras-tensorflow/pspnet_ve/lib/python3.5/site-packages/tensorflow/python/framework/common_shapes.py in call_cpp_shape_fn(op, require_shape_fn) 593 res = _call_cpp_shape_fn_impl(op, input_tensors_needed, 594 input_tensors_as_shapes_needed, --> 595 require_shape_fn) 596 if not isinstance(res, dict): 597 # Handles the case where _call_cpp_shape_fn_impl calls unknown_shape(op). /home/hab/libs/PSPNet-Keras-tensorflow/pspnet_ve/lib/python3.5/site-packages/tensorflow/python/framework/common_shapes.py in _call_cpp_shape_fn_impl(op, input_tensors_needed, input_tensors_as_shapes_needed, require_shape_fn) 657 missing_shape_fn = True 658 else: --> 659 raise ValueError(err.message) 660 661 if missing_shape_fn: ValueError: Negative dimension size caused by subtracting 60 from 1 for 'average_pooling2d_2/AvgPool' (op: 'AvgPool') with input shapes: [?,60,1,2048].