oneflow.broadcast_shapes

oneflow.broadcast_shapes(*shapes)Size

The interface is consistent with PyTorch. The documentation is referenced from: https://pytorch.org/docs/1.10/generated/torch.broadcast_shapes.html.

Similar to oneflow.broadcast_tensors() but for shapes.

This is equivalent to flow.broadcast_tensors(*map(flow.empty, shapes))[0].shape but avoids the need create to intermediate tensors. This is useful for broadcasting tensors of common batch shape but different rightmost shape, e.g. to broadcast mean vectors with covariance matrices.

Parameters

*shapes (flow.Size) – Shapes of tensors.

Returns

A shape compatible with all input shapes.

Raises

RuntimeError – If shapes are incompatible.

Example:

>>> import oneflow as flow
>>> flow.broadcast_shapes((2,), (3, 1), (1, 1, 1))
oneflow.Size([1, 3, 2])