Инструменты для ML моделей теплогидравлики#

В справке представлены инструменты подготовки дополнительного описания ML моделей теплогидравлики для использования блоком Аппроксимационная модель (ТГ) при загрузке модели.

class repeat_onnx.ModelTH(nodes: list[NodeTH])#

Класс предназначен для дополнительного описания моделей машинного обучения, хранимой в нейтральном формате ONNX.

Класс позволяет однозначно сопоставить входные и выходные параметры модели машинного обучения с узлами блока Аппроксимационная модель (ТГ) библиотеки Теплогидравлика платформы REPEAT.

Имена входных параметров давлений и температур, а также выходных параметров расходов и потоков энтальпии указываются с помощью класса NodeTH узла модели.

Parameters:
nodeslist[NodeTH]

Набор узлов с именами давлений, температур, расходов и потоков энтальпии.

Attributes:
flows

Аттрибут, позволяющий получить имена потоков всех узлов модели

potentials

Аттрибут, позволяющий получить имена потенциалов всех узлов модели

Methods

to_onnx()

Метод возвращает строковое представление структуры JSON для последующего сохранения в файл нейтрального формата ONNX.

Returns:
None

Examples

>>> from pprint import pp
>>> import repeat_onnx  as rx
>>> 
>>> 
>>> model_description = rx.ModelTH(
>>>   [
>>>    rx.NodeTH(
>>>      "Input unit", "pressure_1", "temperature_1", 
>>>      "flowrate_1", "enthalpy_flux_1"
>>>      ),
>>>    rx.NodeTH(
>>>      "Output unit", "pressure_2", "temperature_2", 
>>>      "flowrate_2", "enthalpy_flux_2"
>>>      ),
>>>    ]
>>>   )
property flows: list#

Аттрибут, позволяющий получить имена потоков всех узлов модели

Returns:
list

Набор имён потоков для всех узлов модели.

property potentials: list#

Аттрибут, позволяющий получить имена потенциалов всех узлов модели

Returns:
list

Набор имён потенциалов для всех узлов модели.

to_onnx()#

Метод возвращает строковое представление структуры JSON для последующего сохранения в файл нейтрального формата ONNX.

Дополнительное описание ML модели должно располагаться в структуре metadata_props по ключу "repeat_contract".

Returns:
str

JSON с описанием модели для файла нейтрального формата ONNX.

Examples

>>> import onnx
>>> import repeat_onnx  as rx
>>> 
>>> 
>>> model_description = rx.ModelTH(
>>>   [
>>>    rx.NodeTH(
>>>      "Input unit", "pressure_1", "temperature_1", 
>>>      "flowrate_1", "enthalpy_flux_1"
>>>      ),
>>>    ]
>>>   )
>>> properties = onnx.StringStringEntryProto()
>>> properties.key = "repeat_contract"
>>> properties.value = model_description.to_onnx()
>>> model = onnx.load(path)
>>> model.metadata_props.append(properties)
>>> onnx.save(model, path)
class repeat_onnx.NodeTH(name: str, pressure: str, temperature: str, flowrate: str, enthalpy_flux: str)#

Класс предназначен для описания узла теплогидравлической модели. Узел является обязательной составной частью теплогидравлической модели, описание которой выполняется с помощью класса ModelTH.

Класс узла обеспечивает однозначное сопоставление в модели давления и температуры с соответствующими именами входных параметров модели машинного обучения пользователя,хранимой в нейтральном формате ONNX. Так же класс NodeTH обеспечивает однозначное сопоставление расхода и потока энтальпии с результатами расчёта на выходных параметрах модели машинного обучения.

Parameters:
namestr

Имя узла модели. Имя узла будет отображаться в свойствах блока Аппроксимационная модель (ТГ) библиотеки Теплогидравлика платформы REPEAT

pressurestr

Имя входного параметра давления в узле модели

temperaturestr

Имя входного параметра температуры в узле модели

flowratestr

Имя выходного параметра с результатом вычисления массового расхода в узле модели

enthalpy_fluxstr

Имя выходного параметра с результатом вычисления потока энтальпии в узле модели

Attributes:
flows

Аттрибут, позволяющий получить имена потоков узла

potentials

Аттрибут, позволяющий получить имена потенциалов узлa

Returns:
None

Examples

>>> from pprint import pp
>>> import repeat_onnx  as rx
>>> 
>>> 
>>> node = rx.NodeTH(
>>>   "Input unit", "pressure_1", "temperature_1", 
>>>   "flowrate_1", "enthalpy_flux_1"
>>>   )
>>> pp(node)
>>> # NodeP(
>>> #   name='Input unit',
>>> #   pressure='pressure_1',
>>> #   temperature='temperature_1',
>>> #   flowrate='flowrate_1',
>>> #   enthalpy_flux='enthalpy_flux_1'
>>> #   )
property flows: list#

Аттрибут, позволяющий получить имена потоков узла

Returns:
list

Имена потоков узла.

property potentials: list#

Аттрибут, позволяющий получить имена потенциалов узлa

Returns:
list

Имена потенциалов узлa.