Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Скрипты

Информация о входах и выходах ONNX-модели - скрипт для MetaTrader 5

Просмотров:
3033
Рейтинг:
(20)
Опубликован:
2023.03.24 15:35
Обновлен:
2023.08.25 08:49
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Функция исполнения ONNX-модели требует, чтобы размеры входных и выходных данных были определены. Для указания размеров служат функции OnnxSetInputShape и OnnxSetOutputShape соответственно.

Не во всех моделях указаны фиксированные размеры входов и выходов. В таких случаях скрипт покажет значение -1 (минус 1).

   OnnxTypeInfo type_info;

   long input_count=OnnxGetInputCount(session_handle);
   Print("model has ",input_count," input(s)");
   for(long i=0; i<input_count; i++)
     {
      string input_name=OnnxGetInputName(session_handle,i);
      Print(i," input name is ",input_name);
      if(OnnxGetInputTypeInfo(session_handle,i,type_info))
         PrintTypeInfo(i,"input",type_info);
     }

   long output_count=OnnxGetOutputCount(session_handle);
   Print("model has ",output_count," output(s)");
   for(long i=0; i<output_count; i++)
     {
      string output_name=OnnxGetOutputName(session_handle,i);
      Print(i," output name is ",output_name);
      if(OnnxGetOutputTypeInfo(session_handle,i,type_info))
         PrintTypeInfo(i,"output",type_info);
     } 

Выбор модели в папке MQL5\Files производится с помощью функции FileSelectDialog


Пример работы скрипта показан ниже:

Create model from mnist.onnx with debug logs
ONNX: Creating and using per session threadpools since use_per_session_threads_ is true
ONNX: Dynamic block base set to 0
ONNX: Initializing session.
ONNX: Adding default CPU execution provider.
ONNX: Removing initializer 'Parameter6'. It is no longer used by any node.
ONNX: Removing initializer 'Parameter88'. It is no longer used by any node.
ONNX: Total shared scalar initializer count: 0
ONNX: Removing initializer 'Parameter193_reshape1_shape'. It is no longer used by any node.
ONNX: Removing initializer 'Parameter193'. It is no longer used by any node.
ONNX: Total fused reshape node count: 0
ONNX: Total shared scalar initializer count: 0
ONNX: Total fused reshape node count: 0
ONNX: Removing initializer 'Parameter5'. It is no longer used by any node.
ONNX: Removing initializer 'Parameter87'. It is no longer used by any node.
ONNX: Use DeviceBasedPartition as default
ONNX: Saving initialized tensors.
ONNX: Done saving initialized tensors
ONNX: Session successfully initialized.
model has 1 input(s)
0 input name is Input3
   type ONNX_TYPE_TENSOR
   data type ONNX_DATA_TYPE_FLOAT
   shape [1, 1, 28, 28]
   shape of input data can be reduced to [28, 28]
model has 1 output(s)
0 output name is Plus214_Output_0
   type ONNX_TYPE_TENSOR
   data type ONNX_DATA_TYPE_FLOAT
   shape [1, 10]
   shape of output data can be reduced to [10]

Overbought Oversould Level Overbought Oversould Level

Индикатор уровней перекупленности/перепроданности по двум каналам Дончана с большим и меньшим периодом

Adaptive Market Level Adaptive Market Level

Adaptive Market Level - адаптивный уровень рынка - отображает одно из трех состояний рынка: флэт, восходящий тренд и нисходящий тренд.

OK Color Space OK Color Space

Конвертация цвета из формата RGB в формат OKhsl (OKhsv) и обратно

Smooth Gradient Smooth Gradient

Градиент с плавным изменением цвета. Расчеты производятся на основе цветового пространства OKhsl.