We need a Shapes class that defines the dimensions of an operator in a comprehensive way.
The setting:
Input function u: R^x_dim \to R^u_dim
Output function v: R^y_dim \to R^v_dim
u is evaluated num_sensors sensors, v is evaluated in num_evaluations evaluation points.
So, data points are tuples (x, u, y, v) of tensors:
x: [num_sensors n, x_dim]
u: [num_sensors n, u_dim]
y: [num_evaluations m, y_dim]
v: [num_evaluations m, v_dim]
Shapes should expose all of these values as attributes.
The DataSet base class should expose a shapes object.
We will pass dataset.shapes to any operator constructor.
By default, construct a dataset's shape object in the class constructor, deriving from the first data point.
We need a
Shapes
class that defines the dimensions of an operator in a comprehensive way.The setting:
So, data points are tuples (x, u, y, v) of tensors:
x: [num_sensors n, x_dim] u: [num_sensors n, u_dim] y: [num_evaluations m, y_dim] v: [num_evaluations m, v_dim]
Shapes should expose all of these values as attributes.
The DataSet base class should expose a
shapes
object. We will passdataset.shapes
to any operator constructor. By default, construct a dataset's shape object in the class constructor, deriving from the first data point.