whytin/Part-action-network_Keras

train.py ValueError: Shape must be rank 4 but is rank 3 for 'time_distributed_1/AvgPool' (op: 'AvgPool') with input shapes: [?,7,2048].

Opened this issue · 1 comments

hello ,when I run train.py, I get this error:
how to solve it?

InvalidArgumentError Traceback (most recent call last)
C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py in _create_c_op(graph, node_def, inputs, control_inputs)
1658 try:
-> 1659 c_op = c_api.TF_FinishOperation(op_desc)
1660 except errors.InvalidArgumentError as e:

InvalidArgumentError: Shape must be rank 4 but is rank 3 for 'time_distributed_1/AvgPool' (op: 'AvgPool') with input shapes: [?,7,2048].

During handling of the above exception, another exception occurred:

ValueError Traceback (most recent call last)
in
----> 1 output = KL.TimeDistributed(AveragePooling2D((7,7), padding='valid', name='avg_pool'))(output)

C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\base_layer.py in call(self, inputs, **kwargs)
455 # Actually call the layer,
456 # collecting output(s), mask(s), and shape(s).
--> 457 output = self.call(inputs, **kwargs)
458 output_mask = self.compute_mask(inputs, previous_mask)
459

C:\ProgramData\Anaconda3\lib\site-packages\keras\layers\wrappers.py in call(self, inputs, training, mask)
246 inner_mask_shape = self._get_shape_tuple((-1,), mask, 2)
247 kwargs['mask'] = K.reshape(mask, inner_mask_shape)
--> 248 y = self.layer.call(inputs, **kwargs)
249 if hasattr(y, '_uses_learning_phase'):
250 uses_learning_phase = y._uses_learning_phase

C:\ProgramData\Anaconda3\lib\site-packages\keras\layers\pooling.py in call(self, inputs)
203 strides=self.strides,
204 padding=self.padding,
--> 205 data_format=self.data_format)
206 return output
207

C:\ProgramData\Anaconda3\lib\site-packages\keras\layers\pooling.py in _pooling_function(self, inputs, pool_size, strides, padding, data_format)
320 padding, data_format):
321 output = K.pool2d(inputs, pool_size, strides,
--> 322 padding, data_format, pool_mode='avg')
323 return output
324

C:\ProgramData\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py in pool2d(x, pool_size, strides, padding, data_format, pool_mode)
3980 x = tf.nn.avg_pool(x, pool_size, strides,
3981 padding=padding,
-> 3982 data_format=tf_data_format)
3983 else:
3984 raise ValueError('Invalid pool_mode: ' + str(pool_mode))

C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\ops\nn_ops.py in avg_pool(value, ksize, strides, padding, data_format, name)
2716 padding=padding,
2717 data_format=data_format,
-> 2718 name=name)
2719
2720

C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\ops\gen_nn_ops.py in avg_pool(value, ksize, strides, padding, data_format, name)
90 _, _, _op = _op_def_lib._apply_op_helper(
91 "AvgPool", value=value, ksize=ksize, strides=strides, padding=padding,
---> 92 data_format=data_format, name=name)
93 _result = _op.outputs[:]
94 _inputs_flat = _op.inputs

C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py in _apply_op_helper(self, op_type_name, name, **keywords)
786 op = g.create_op(op_type_name, inputs, output_types, name=scope,
787 input_types=input_types, attrs=attr_protos,
--> 788 op_def=op_def)
789 return output_structure, op_def.is_stateful, op
790

C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\util\deprecation.py in new_func(*args, **kwargs)
505 'in a future version' if date is None else ('after %s' % date),
506 instructions)
--> 507 return func(*args, **kwargs)
508
509 doc = _add_deprecated_arg_notice_to_docstring(

C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py in create_op(failed resolving arguments)
3298 input_types=input_types,
3299 original_op=self._default_original_op,
-> 3300 op_def=op_def)
3301 self._create_op_helper(ret, compute_device=compute_device)
3302 return ret

C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py in init(self, node_def, g, inputs, output_types, control_inputs, input_types, original_op, op_def)
1821 op_def, inputs, node_def.attr)
1822 self._c_op = _create_c_op(self._graph, node_def, grouped_inputs,
-> 1823 control_input_ops)
1824
1825 # Initialize self._outputs.

C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py in _create_c_op(graph, node_def, inputs, control_inputs)
1660 except errors.InvalidArgumentError as e:
1661 # Convert to ValueError for backwards compatibility.
-> 1662 raise ValueError(str(e))
1663
1664 return c_op

ValueError: Shape must be rank 4 but is rank 3 for 'time_distributed_1/AvgPool' (op: 'AvgPool') with input shapes: [?,7,2048].

need to preprocess data?

@fereshtemoradi I have meet the same problem. Do you solve it?