kevinjliang / tf-Faster-RCNN

TensorFlow implementation of Faster R-CNN
171 stars 98 forks source link

ValueError: The `strides` argument must be a tuple of 2 integers #26

Open ZZ727 opened 6 years ago

ZZ727 commented 6 years ago

when I was training ,an error comes up:

Traceback (most recent call last): File "/home/zz/code/tf-Faster-RCNN/Models/faster_rcnn_resnet50ish.py", line 300, in main() File "/home/zz/code/tf-Faster-RCNN/Models/faster_rcnn_resnet50ish.py", line 291, in main model = FasterRcnnRes50(flags, dictionary) File "/home/zz/code/tf-Faster-RCNN/Models/faster_rcnn_resnet50ish.py", line 44, in init super().init(flags_input, flags_input['run_num'], vram=cfg.VRAM, restore=flags_input['restore_num'], restore_slim=flags_input['restore_slim_file']) File "/home/zz/code/tf-Faster-RCNN/Lib/TensorBase/tensorbase/base.py", line 676, in init self._network() File "/home/zz/code/tf-Faster-RCNN/Models/faster_rcnn_resnet50ish.py", line 82, in _network self._faster_rcnn(self.x['TRAIN'], self.gt_boxes['TRAIN'], self.im_dims['TRAIN'], 'TRAIN') File "/home/zz/code/tf-Faster-RCNN/Models/faster_rcnn_resnet50ish.py", line 93, in _faster_rcnn feature_maps = resnet50_reduced(x) File "/home/zz/code/tf-Faster-RCNN/Networks/resnet50_reduced.py", line 81, in resnet50_reduced net = resnet_utils.stack_blocks_dense(net, blocks, output_stride) File "/home/zz/anaconda3/envs/tensorflow1.0/lib/python3.6/site-packages/tensorflow/contrib/framework/python/ops/arg_scope.py", line 177, in func_with_args return func(*args, current_args) File "/home/zz/anaconda3/envs/tensorflow1.0/lib/python3.6/site-packages/tensorflow/contrib/slim/python/slim/nets/resnet_utils.py", line 229, in stack_blocks_dense rate=1) File "/home/zz/anaconda3/envs/tensorflow1.0/lib/python3.6/site-packages/tensorflow/contrib/framework/python/ops/arg_scope.py", line 177, in func_with_args return func(*args, *current_args) File "/home/zz/code/tf-Faster-RCNN/Networks/resnet50_reduced.py", line 30, in bottleneck shortcut = slim.conv2d(inputs, depth, [1, 1], stride=stride, activation_fn=None, scope='shortcut') File "/home/zz/anaconda3/envs/tensorflow1.0/lib/python3.6/site-packages/tensorflow/contrib/framework/python/ops/arg_scope.py", line 177, in func_with_args return func(args, current_args) File "/home/zz/anaconda3/envs/tensorflow1.0/lib/python3.6/site-packages/tensorflow/contrib/layers/python/layers/layers.py", line 906, in convolution _reuse=reuse) File "/home/zz/anaconda3/envs/tensorflow1.0/lib/python3.6/site-packages/tensorflow/python/layers/convolutional.py", line 419, in init name=name, **kwargs) File "/home/zz/anaconda3/envs/tensorflow1.0/lib/python3.6/site-packages/tensorflow/python/layers/convolutional.py", line 105, in init self.strides = utils.normalize_tuple(strides, rank, 'strides') File "/home/zz/anaconda3/envs/tensorflow1.0/lib/python3.6/site-packages/tensorflow/python/layers/utils.py", line 84, in normalize_tuple str(n) + ' integers. Received: ' + str(value)) ValueError: The strides argument must be a tuple of 2 integers. Received: stride

It seems that there is something wrong in the file "resnet_utils.py". I thought the wrong sentence is in LINE207: "unit_depth, unit_depth_bottleneck, unit_stride = unit" That it can't doing that dict operation in Python ... Has anyone meets this same problem?????

thx

Carlospek commented 6 years ago

@ZZ727 It seems you need to upgrade your tensorflow version

ShihuaHuang95 commented 6 years ago

@Carlospek , It does not work for me while the version of my tensorflow is 1.9.0, which is up-to-date, and I still encounter such problem.