mlflow.types

The mlflow.types module defines data types and utilities to be used by other mlflow components to describe interface independent of other frameworks or languages.

class mlflow.types.ColSpec(type: Union[mlflow.types.schema.DataType, str], name: Optional[str] = None, optional: bool = False)[source]

Bases: object

Specification of name and type of a single column in a dataset.

property name

The column name or None if the columns is unnamed.

property optional

Whether this column is optional.

Note

Experimental: This property may change or be removed in a future release without warning.

property type

The column data type.

class mlflow.types.DataType(value)[source]

Bases: enum.Enum

MLflow data types.

binary = 7

Sequence of raw bytes.

boolean = 1

Logical data (True, False) .

datetime = 8

64b datetime data.

double = 5

64b floating point numbers.

float = 4

32b floating point numbers.

integer = 2

32b signed integer numbers.

long = 3

64b signed integer numbers.

string = 6

Text data.

to_numpy()numpy.dtype[source]

Get equivalent numpy data type.

to_pandas()numpy.dtype[source]

Get equivalent pandas data type.

to_python()[source]

Get equivalent python data type.

class mlflow.types.ParamSchema(params: List[mlflow.types.schema.ParamSpec])[source]

Bases: object

Note

Experimental: This class may change or be removed in a future release without warning.

Specification of parameters applicable to the model. ParamSchema is represented as a list of ParamSpec.

classmethod from_json(json_str: str)[source]

Deserialize from a json string.

property params

Representation of ParamSchema as a list of ParamSpec.

to_dict()List[Dict[str, Any]][source]

Serialize into a jsonable dictionary.

to_json()str[source]

Serialize into json string.

class mlflow.types.ParamSpec(name: str, dtype: Union[mlflow.types.schema.DataType, str], default: Optional[Union[mlflow.types.schema.DataType, List[mlflow.types.schema.DataType]]], shape: Optional[Tuple[int, ]] = None)[source]

Bases: object

Note

Experimental: This class may change or be removed in a future release without warning.

Specification used to represent parameters for the model.

class ParamSpecTypedDict(*args, **kwargs)[source]

Bases: dict

property default

Default value of the parameter.

property dtype

The parameter data type.

classmethod enforce_param_datatype(name, value, dtype: mlflow.types.schema.DataType)[source]

Enforce the value matches the data type.

The following type conversions are allowed:

  1. int -> long, float, double

  2. long -> float, double

  3. float -> double

  4. any -> datetime (try conversion)

Any other type mismatch will raise error.

Parameters
  • name – parameter name

  • value – parameter value

  • t – expected data type

classmethod from_json_dict(**kwargs)[source]

Deserialize from a json loaded dictionary. The dictionary is expected to contain name, type and default keys.

property name

The name of the parameter.

property shape

The parameter shape. If shape is None, the parameter is a scalar.

classmethod validate_type_and_shape(spec: str, value: Optional[Union[mlflow.types.schema.DataType, List[mlflow.types.schema.DataType]]], value_type: mlflow.types.schema.DataType, shape: Optional[Tuple[int, ]])[source]

Validate that the value has the expected type and shape.

class mlflow.types.Schema(inputs: List[Union[mlflow.types.schema.ColSpec, mlflow.types.schema.TensorSpec]])[source]

Bases: object

Specification of a dataset.

Schema is represented as a list of ColSpec or TensorSpec. A combination of ColSpec and TensorSpec is not allowed.

The dataset represented by a schema can be named, with unique non empty names for every input. In the case of ColSpec, the dataset columns can be unnamed with implicit integer index defined by their list indices. Combination of named and unnamed data inputs are not allowed.

as_spark_schema()[source]

Convert to Spark schema. If this schema is a single unnamed column, it is converted directly the corresponding spark data type, otherwise it’s returned as a struct (missing column names are filled with an integer sequence). Unsupported by TensorSpec.

classmethod from_json(json_str: str)[source]

Deserialize from a json string.

has_input_names()bool[source]

Return true iff this schema declares names, false otherwise.

input_names()List[Union[str, int]][source]

Get list of data names or range of indices if the schema has no names.

input_types()List[Union[mlflow.types.schema.DataType, numpy.dtype]][source]

Get types for each column in the schema.

input_types_dict()Dict[str, Union[mlflow.types.schema.DataType, numpy.dtype]][source]

Maps column names to types, iff this schema declares names.

property inputs

Representation of a dataset that defines this schema.

is_tensor_spec()bool[source]

Return true iff this schema is specified using TensorSpec

numpy_types()List[numpy.dtype][source]

Convenience shortcut to get the datatypes as numpy types.

optional_input_names()List[Union[str, int]][source]

Note

Experimental: This function may change or be removed in a future release without warning.

Get list of optional data names or range of indices if schema has no names.

pandas_types()List[numpy.dtype][source]

Convenience shortcut to get the datatypes as pandas types. Unsupported by TensorSpec.

required_input_names()List[Union[str, int]][source]

Get list of required data names or range of indices if schema has no names.

to_dict()List[Dict[str, Any]][source]

Serialize into a jsonable dictionary.

to_json()str[source]

Serialize into json string.

class mlflow.types.TensorSpec(type: numpy.dtype, shape: Union[tuple, list], name: Optional[str] = None)[source]

Bases: object

Specification used to represent a dataset stored as a Tensor.

classmethod from_json_dict(**kwargs)[source]

Deserialize from a json loaded dictionary. The dictionary is expected to contain type and tensor-spec keys.

property name

The tensor name or None if the tensor is unnamed.

property optional

Whether this tensor is optional.

Note

Experimental: This property may change or be removed in a future release without warning.

property shape

The tensor shape

property type

A unique character code for each of the 21 different numpy built-in types. See https://numpy.org/devdocs/reference/generated/numpy.dtype.html#numpy.dtype for details.