欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决tf2 ValueError: Tensor‘s shape (4, 4, 1, 16) is not compatible with supplied shape (4, 4, 3, 16)

程序员文章站 2022-06-15 13:52:59
...

解决tf2 ValueError: Tensor’s shape (4, 4, 1, 16) is not compatible with supplied shape (4, 4, 3, 16)

代码

test = tf.ones((1,8,8,3))
new_prediction = new_model.predict(test)

报错信息

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-11-8d3486b18e09> in <module>()
      6 new_model = MyNet()
      7 new_model.load_weights('model_weight')
----> 8 new_prediction = new_model.predict(test)
      9 
     10 print(new_prediction)

~/.local/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py in _method_wrapper(self, *args, **kwargs)
    128       raise ValueError('{} is not supported in multi-worker mode.'.format(
    129           method.__name__))
--> 130     return method(self, *args, **kwargs)
    131 
    132   return tf_decorator.make_decorator(

~/.local/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py in predict(self, x, batch_size, verbose, steps, callbacks, max_queue_size, workers, use_multiprocessing)
   1597           for step in data_handler.steps():
   1598             callbacks.on_predict_batch_begin(step)
-> 1599             tmp_batch_outputs = predict_function(iterator)
   1600             if data_handler.should_sync:
   1601               context.async_wait()

~/.local/lib/python3.6/site-packages/tensorflow/python/eager/def_function.py in __call__(self, *args, **kwds)
    778       else:
    779         compiler = "nonXla"
--> 780         result = self._call(*args, **kwds)
    781 
    782       new_tracing_count = self._get_tracing_count()

~/.local/lib/python3.6/site-packages/tensorflow/python/eager/def_function.py in _call(self, *args, **kwds)
    821       # This is the first call of __call__, so we have to initialize.
    822       initializers = []
--> 823       self._initialize(args, kwds, add_initializers_to=initializers)
    824     finally:
    825       # At this point we know that the initialization is complete (or less

~/.local/lib/python3.6/site-packages/tensorflow/python/eager/def_function.py in _initialize(self, args, kwds, add_initializers_to)
    695     self._concrete_stateful_fn = (
    696         self._stateful_fn._get_concrete_function_internal_garbage_collected(  # pylint: disable=protected-access
--> 697             *args, **kwds))
    698 
    699     def invalid_creator_scope(*unused_args, **unused_kwds):

~/.local/lib/python3.6/site-packages/tensorflow/python/eager/function.py in _get_concrete_function_internal_garbage_collected(self, *args, **kwargs)
   2853       args, kwargs = None, None
   2854     with self._lock:
-> 2855       graph_function, _, _ = self._maybe_define_function(args, kwargs)
   2856     return graph_function
   2857 

~/.local/lib/python3.6/site-packages/tensorflow/python/eager/function.py in _maybe_define_function(self, args, kwargs)
   3211 
   3212       self._function_cache.missed.add(call_context_key)
-> 3213       graph_function = self._create_graph_function(args, kwargs)
   3214       self._function_cache.primary[cache_key] = graph_function
   3215       return graph_function, args, kwargs

~/.local/lib/python3.6/site-packages/tensorflow/python/eager/function.py in _create_graph_function(self, args, kwargs, override_flat_arg_shapes)
   3073             arg_names=arg_names,
   3074             override_flat_arg_shapes=override_flat_arg_shapes,
-> 3075             capture_by_value=self._capture_by_value),
   3076         self._function_attributes,
   3077         function_spec=self.function_spec,

~/.local/lib/python3.6/site-packages/tensorflow/python/framework/func_graph.py in func_graph_from_py_func(name, python_func, args, kwargs, signature, func_graph, autograph, autograph_options, add_control_dependencies, arg_names, op_return_value, collections, capture_by_value, override_flat_arg_shapes)
    984         _, original_func = tf_decorator.unwrap(python_func)
    985 
--> 986       func_outputs = python_func(*func_args, **func_kwargs)
    987 
    988       # invariant: `func_outputs` contains only Tensors, CompositeTensors,

~/.local/lib/python3.6/site-packages/tensorflow/python/eager/def_function.py in wrapped_fn(*args, **kwds)
    598         # __wrapped__ allows AutoGraph to swap in a converted function. We give
    599         # the function a weak reference to itself to avoid a reference cycle.
--> 600         return weak_wrapped_fn().__wrapped__(*args, **kwds)
    601     weak_wrapped_fn = weakref.ref(wrapped_fn)
    602 

~/.local/lib/python3.6/site-packages/tensorflow/python/framework/func_graph.py in wrapper(*args, **kwargs)
    971           except Exception as e:  # pylint:disable=broad-except
    972             if hasattr(e, "ag_error_metadata"):
--> 973               raise e.ag_error_metadata.to_exception(e)
    974             else:
    975               raise

ValueError: in user code:

    /Users/1/.local/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py:1462 predict_function  *
        return step_function(self, iterator)
    <ipython-input-4-470bb031585e>:24 call  *
        inputs = self.maxpool1(self.cbr1(inputs))
    <ipython-input-1-470bb031585e>:11 call  *
        inputs = self.conv(inputs)
    /Users/1/.local/lib/python3.6/site-packages/tensorflow/python/keras/engine/base_layer.py:982 __call__  **
        self._maybe_build(inputs)
    /Users/1/.local/lib/python3.6/site-packages/tensorflow/python/keras/engine/base_layer.py:2643 _maybe_build
        self.build(input_shapes)  # pylint:disable=not-callable
    /Users/1/.local/lib/python3.6/site-packages/tensorflow/python/keras/layers/convolutional.py:204 build
        dtype=self.dtype)
    /Users/1/.local/lib/python3.6/site-packages/tensorflow/python/keras/engine/base_layer.py:614 add_weight
        caching_device=caching_device)
    /Users/1/.local/lib/python3.6/site-packages/tensorflow/python/training/tracking/base.py:731 _add_variable_with_custom_getter
        name=name, shape=shape)
    /Users/1/.local/lib/python3.6/site-packages/tensorflow/python/training/tracking/base.py:798 _preload_simple_restoration
        checkpoint_position=checkpoint_position, shape=shape)
    /Users/1/.local/lib/python3.6/site-packages/tensorflow/python/training/tracking/base.py:75 __init__
        self.wrapped_value.set_shape(shape)
    /Users/1/.local/lib/python3.6/site-packages/tensorflow/python/framework/ops.py:1209 set_shape
        (self.shape, shape))

    ValueError: Tensor's shape (4, 4, 1, 16) is not compatible with supplied shape (4, 4, 3, 16)



解决办法

test = tf.ones((1,8,8,1))
new_prediction = new_model.predict(test)

通道数不对应

欢迎大家交流学习,任何问题都可以留言