|
|
|
@ -4865,7 +4865,7 @@ def autoincreased_step_counter(counter_name=None, begin=1, step=1):
|
|
|
|
|
return counter
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def reshape(x, shape, actual_shape=None, act=None, inplace=True, name=None):
|
|
|
|
|
def reshape(x, shape, actual_shape=None, act=None, inplace=False, name=None):
|
|
|
|
|
"""
|
|
|
|
|
Gives a new shape to the input Tensor without changing its data.
|
|
|
|
|
|
|
|
|
@ -4913,15 +4913,22 @@ def reshape(x, shape, actual_shape=None, act=None, inplace=True, name=None):
|
|
|
|
|
:attr:`shape` specifying shape. That is to
|
|
|
|
|
say :attr:`actual_shape` has a higher priority
|
|
|
|
|
than :attr:`shape`.
|
|
|
|
|
act (str): The non-linear activation to be applied to output variable.
|
|
|
|
|
inplace(bool): If this flag is set true, the output
|
|
|
|
|
shares data with input without copying, otherwise
|
|
|
|
|
a new output tensor is created
|
|
|
|
|
whose data is copied from input x.
|
|
|
|
|
act (str): The non-linear activation to be applied to the reshaped tensor
|
|
|
|
|
variable.
|
|
|
|
|
inplace(bool): Must use :attr:`False` if :attr:`x` is used in multiple
|
|
|
|
|
operators. If this flag is set :attr:`True`, reuse input
|
|
|
|
|
:attr:`x` to reshape, which will change the shape of
|
|
|
|
|
tensor variable :attr:`x` and might cause errors when
|
|
|
|
|
:attr:`x` is used in multiple operators. If :attr:`False`,
|
|
|
|
|
preserve the shape :attr:`x` and create a new output tensor
|
|
|
|
|
variable whose data is copied from input x but reshaped.
|
|
|
|
|
name (str): The name of this layer. It is optional.
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
Variable: The output tensor.
|
|
|
|
|
Variable: The reshaped tensor variable if :attr:`act` is None. It is a \
|
|
|
|
|
new tensor variable if :attr:`inplace` is :attr:`False`, \
|
|
|
|
|
otherwise it is :attr:`x`. If :attr:`act` is not None, return \
|
|
|
|
|
the activated tensor variable.
|
|
|
|
|
|
|
|
|
|
Raises:
|
|
|
|
|
TypeError: if actual_shape is neither Variable nor None.
|
|
|
|
@ -4932,7 +4939,7 @@ def reshape(x, shape, actual_shape=None, act=None, inplace=True, name=None):
|
|
|
|
|
data = fluid.layers.data(
|
|
|
|
|
name='data', shape=[2, 4, 6], dtype='float32')
|
|
|
|
|
reshaped = fluid.layers.reshape(
|
|
|
|
|
x=data, shape=[-1, 0, 3, 2], act='tanh', inplace=True)
|
|
|
|
|
x=data, shape=[-1, 0, 3, 2], inplace=True)
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
if not (isinstance(shape, list) or isinstance(shape, tuple)):
|
|
|
|
@ -4959,7 +4966,8 @@ def reshape(x, shape, actual_shape=None, act=None, inplace=True, name=None):
|
|
|
|
|
"except one unknown dimension.")
|
|
|
|
|
|
|
|
|
|
helper = LayerHelper("reshape2", **locals())
|
|
|
|
|
out = helper.create_variable_for_type_inference(dtype=x.dtype)
|
|
|
|
|
out = x if inplace else helper.create_variable_for_type_inference(
|
|
|
|
|
dtype=x.dtype)
|
|
|
|
|
x_shape = helper.create_variable_for_type_inference(dtype=x.dtype)
|
|
|
|
|
helper.append_op(
|
|
|
|
|
type="reshape2",
|
|
|
|
|