InputSpec

class paddle.static. InputSpec ( shape, dtype='float32', name=None ) [source]

InputSpec describes the signature information of the model input, such as shape , dtype , name .

This interface is often used to specify input tensor information of models in high-level API. It’s also used to specify the tensor information for each input parameter of the forward function decorated by @paddle.jit.to_static.

Parameters
  • shape (tuple(integers)|list[integers]) – List|Tuple of integers declaring the shape. You can set “None” or -1 at a dimension to indicate the dimension can be of any size. For example, it is useful to set changeable batch size as “None” or -1.

  • dtype (np.dtype|str, optional) – The type of the data. Supported dtype: bool, float16, float32, float64, int8, int16, int32, int64, uint8. Default: float32.

  • name (str) – The name/alias of the variable, see Name for more details.

Examples

from paddle.static import InputSpec

input = InputSpec([None, 784], 'float32', 'x')
label = InputSpec([None, 1], 'int64', 'label')

print(input)  # InputSpec(shape=(-1, 784), dtype=VarType.FP32, name=x)
print(label)  # InputSpec(shape=(-1, 1), dtype=VarType.INT64, name=label)
classmethod from_tensor ( tensor, name=None )

from_tensor

Generates a InputSpec based on the description of input tensor.

Parameters

tensor (Tensor) – the source tensor to generate a InputSpec instance

Returns

A InputSpec instance generated from Tensor.

Examples

import numpy as np
import paddle
from paddle.static import InputSpec

paddle.disable_static()

x = paddle.to_tensor(np.ones([2, 2], np.float32))
x_spec = InputSpec.from_tensor(x, name='x')
print(x_spec)  # InputSpec(shape=(2, 2), dtype=VarType.FP32, name=x)
classmethod from_numpy ( ndarray, name=None )

from_numpy

Generates a InputSpec based on the description of input np.ndarray.

Parameters

tensor (Tensor) – the source numpy ndarray to generate a InputSpec instance

Returns

A InputSpec instance generated from Tensor.

Examples

import numpy as np
from paddle.static import InputSpec

x = np.ones([2, 2], np.float32)
x_spec = InputSpec.from_numpy(x, name='x')
print(x_spec)  # InputSpec(shape=(2, 2), dtype=VarType.FP32, name=x)
batch ( batch_size )

batch

Inserts batch_size in front of the shape.

Parameters

batch_size (int) – the inserted integer value of batch size.

Returns

The original InputSpec instance by inserting batch_size in front of shape.

Examples

from paddle.static import InputSpec

x_spec = InputSpec(shape=[64], dtype='float32', name='x')
x_spec.batch(4)
print(x_spec) # InputSpec(shape=(4, 64), dtype=VarType.FP32, name=x)
unbatch ( )

unbatch

Removes the first element of shape.

Returns

The original InputSpec instance by removing the first element of shape .

Examples

from paddle.static import InputSpec

x_spec = InputSpec(shape=[4, 64], dtype='float32', name='x')
x_spec.unbatch()
print(x_spec) # InputSpec(shape=(64,), dtype=VarType.FP32, name=x)

Used in the guide/tutorials