Как сохранить обученную нейронную сеть python
Перейти к содержимому

Как сохранить обученную нейронную сеть python

  • автор:

Русские Блоги

pytorch (4): сохранение и извлечение нейронных сетей

После обучения нейронной сети, как сохранить его, как извлечь его после сохранения?

Как показано на следующем рисунке, net1 является обученной нейронной сетью, и ее можно сохранить двумя способами: 1. Сохранить всю обученную нейронную сеть, 2. Сохранить окончательные параметры нейронной сети.

Net2 сохраняется в соответствии с первым методом. net2 сохраняется по второму пути

Примечание. Помещение plt.show () в конце покажет три изображения, соединенных вместе. Если plt.show () добавляется после каждой определенной функции, три изображения отображаются отдельно и не могут быть связаны в целом.

Интеллектуальная рекомендация

Структура данных Java-реализация стека

Структура данных Java-реализация стека Структура данных Java (1) Введение в стек Интерфейс ADT стека Приложение экземпляра заметки Структура данных Java (1) Структура данных. Введение в стек Структура.

Упаковка и удаление программы Winform

Упаковка и выгрузка программ C # могут быть реализованы в среде IDE Visual Studio. Упакуйте плагин Во-первых, вам необходимо загрузить подключаемый модуль Microsoft Visual Studio Installer Project. Пл.

Как вызвать страницу OAF на форме при разработке EBS OAF и передать параметры странице OAF

1. Добавьте кнопку или другой элемент в форму и добавьте соответствующий триггер, используйте кнопку здесь и соответствующую страницу OAF в приемнике WHEN-BUTTON-PRESSED. Код выглядит следующим.

Введение в технологию сетевых хранилищ (2) (на основе zt)

http://www.educity.cn/tx/429084.html Сравнение интернет-технологий DAS, NAS и SAN хранилищ В соответствии с расположением устройства и методом доступа, дисковое хранилище можно разделить на вст.

Настройка балансировщика нагрузки Azure для балансировки нагрузки веб-приложений

В предыдущей статье я представил некоторые основные концепции и сценарии использования Azure Load Balancer. Сегодняшняя статья поможет вам настроить балансировщик нагрузки Azure. Локальные эксперимент.

Name already in use

asozykin.ru / _posts / 2018-04-04-Google-Colaboratory-for-Deep-Learning.md

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink
  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents

Copy raw contents

Copy raw contents

Если у вас не получается установить Keras и TensorFlow, или у вас нет GPU от NVIDIA, то для вас есть отличная новость от Google. Для распространения технологий машинного обучения и глубоких нейронных сетей Google сделал доступной свою облачную платформу Colaboratory. Эта среда, похожая на Jupyter Notebook, в которой уже установлены библиотеки TensorFlow и Keras, а также доступны GPU NVIDIA K80. Есть все, что нужно для обучения глубоких нейросетей. Использование этой платформы полностью бесплатно. Давайте рассмотрим, как можно выполнять заданий курса «Программирование глубоких нейронных сетей на Python» на Colaboratory.

Платформа Google Colaboratory

В Google Colaboratory можно создавать ноутбуки, примерно как в Jupyter. Ноутбук выполняется на виртуальной машине в облаке, которая выделяется специально для вас. По умолчанию создается виртуальная машина с центральным процессором, но можно подключить и GPU. Если вы некоторое время не работаете в ноутбуке, то виртуальная машина отключается. Максимальное время жизни виртуальной машины 12 часов. За такое время на GPU можно обучить любую нейронную сеть из учебного курса, и даже простые продуктивные модели.

Для использования Colaboratory нужна учетная запись Google и браузер Chrome, в который устанавливается специальное приложение. Это приложение позволяет запускать ноутбуки с кодом на Python в браузере.

Ноутбуки в Google Colaboratory — это файлы на диске Google Drive. Ими можно делиться, сохранять себе в Google Drive, и даже допускается совместная работа нескольких человек над одним ноутбуком.

Распознаем объекты на изображениях из набора данных CIFAR-10 в Google Colaboratory

Давайте рассмотрим, как можно использовать Google Colaboratory для запуска учебных задач из курса. В качестве примера возьмем распознавание объектов на изображениях из набора данных CIFAR-10, т.к. там используется достаточно большая сверточная нейронная сеть, которую долго обучать без GPU.

Я уже создал ноутбук в Colaboratory, в котором выполняется обучение сверточной нейронной сети для распознавания объектов из CIFAR-10. Просто откройте ссылку в браузере Chrome и выберите «Open with Colaboratory».

Открыть ноутбук в Colaboratory

Если вы открываете ноутбук первый раз, то Chrome предложит вам установить Colaboratory. После установки вы сможете открыть ноутбук.

Выглядит ноутбук в Colaboratory почти также, как в Jupyter. Он состоит из отдельных блоков, которые могут быть кодом или текстом. Блок кода можно запустить, нажав на кнопку «Play» слева от него, либо нажав на клавиатуре Ctrl+Enter.

Открыть ноутбук в Colaboratory

У вас не получится запустить или изменить код в моем ноутбуке, поэтому нужно создать свою копию. Для этого выберите пункт меню File -> Save a copy in Drive. и сохраните ноутбук себе в Google Drive. В копии вы сможете запускать и изменять код.

В Colaboratory уже установлены Keras и TensorFlow, поэтому мы можем сразу же импортировать их модули. Задание и обучение нейронной сети в Colaboratory делается стандартными средствами Keras. Рассмотрим некоторые особенности, связанные именно с Colaboratory.

Виртуальная машина в Colaboratory создается для вас каждый раз, когда вы запускаете ноутбук, а после остановки ноутбука виртуальная машина уничтожается вместе со всеми данными. Поэтому первый шаг при запуске ноутбука на Colaboratory — это загрузка данных. Для небольших наборов данных, поддержка которых встроена в Keras, это можно легко сделать встроенными средствами Keras:

Обратите внимание, что в отличие от персонального компьютера, где Keras кэширует загруженные данные на диске, в Colaboratory данные будут загружаться каждый раз заново. Ранее загруженные удаляются вместе с виртуальной машиной после остановки ноутбука.

Загрузка данных в Colaboratory

Загрузить данные с соревнований Kaggle можно с помощью Kaggle CLI. Для начала его нужно установить:

Восклицательный знак в начале команды говорит, что это не код Python, а команда операционной системы. Она будет выполнена в виртуальной машине и установиться пакет Python kaggle-cli.

Для загрузки набора данных с соревнований «Dogs vs Cats» нужно выполнить команду:

Интересующее нас соревнование указывается в ключе -c , а конкретный файл — в -f . Не забудьте вставить свое имя пользователя и пароль на сайте kaggle. Перед загрузкой нужно зайти на сайт и принять условия участия в соревновании.

Можно также загрузить любые данные из интернет с помощью команды wget . Например, для загрузки набора данных о химическом составе вин с целью определения места их происхождения из UCI Machine Learning Repository, можно воспользоваться следующей командой:

Все загруженные данные сохраняются в локальную файловую систему виртуальной машины. Для работы с ними можно использовать стандартные команды Linux: ls , cp , mv , rm . Не забудьте добавлять восклицательный знак перед командой в ноутбуке.

Виртуальная машина в Colaboratory создается с центральным процессором, но к ней можно подключить GPU. Для этого выберите в меню ноутбука пункт Runtime -> Change Runtime Type. Появится окно, в котором есть поле «Hardware Accelerator«. В этом поле нужно заменить значение «None» на «GPU» и нажать кнопку Save .

Подключение GPU в Colaboratory

После смены Runtime для вас создастся новая виртуальная машина с GPU. На ней придется заново выполнять все команды ноутбука, так что рекомендую менять Runtime сразу после открытия ноутбука.

Модель GPU в виртуальной машине можно узнать с помощью файловой системы /proc .

Модель GPU в Colaboratory

Используется GPU Tesla K80. Достаточно мощный ускоритель, хотя и не последняя модель.

Обучение глубоких нейронных сетей на GPU выполняется гораздо быстрее, чем на CPU. Для обучения одной эпох сверточной нейронной сети для распознавания объектов CIFAR-10 нужно примерно 23 секунды.

Обучение на GPU в Colaboratory

Обучение той же самой сети на CPU требует в 10 с лишним раз больше времени: примерно 260 секунд на одну эпоху.

Обучение на СPU в Colaboratory

Если у вас глубокая нейронная сеть, то для ее обучения рекомендуется использовать GPU. Тем более что Google дает GPU бесплатно.

Сохранение обученной нейронной сети

Мы обучили сеть в Colaboratory с GPU, но теперь нам нужно ее сохранить и скачать с облачной платформы на свой компьютер. Для сохранения обученной нейронной сети воспользуемся стандартными средствами Keras:

Мы сохранили архитектуру нейронной сети и обученные веса в файлы cifar10_model.json и cifar10_model.h5 . Но эти файлы находятся на виртуальной машине. Проверить это можно командой ls

Просматриваем файлы на виртуальной машине Colaboratory

Для загрузки файлов с виртуальной машины на свой компьютер можно воспользоваться встроенными в Colaboratory средствами работы с файлами. Подключаем соответствующий модуль:

Загружаем файлы командами:

Лучше разместить эти команды в разных ячейках, чтобы можно было сохранять файлы отдельно друг от друга.

Тестируем работу нейронной сети на дополнительных изображениях

Мы обучили нейронную сеть и проверили качество ее работы на данных из набора CIFAR-10. Теперь хочется оценить, как будет работать нейронная сеть с картинками, которые не входят в CIFAR-10. Для этого нам нужно загрузить свои изображений с локального компьютера на виртуальную машину Colaboratory. Воспользуемся модулем files , у которого есть метод upload . При вызове этого метода откроется окно выбора файлов браузера. Файлы, которые вы выберете в этом окне, будут отправлены на виртуальную машину. Вот пример загрузки картинки с самолетом:

Загружаем файлы на виртуальную машину Colaboratory

В выводе команды ls видно, что на виртуальную машину записан новый файл plane.jpg .

Теперь можно использовать стандартные средства Matplotlib и Keras чтобы просмотреть этот файл и распознать, какой объект на нем находится.

Распознаем картинку в Colaboratory

Как мы видим, нейронная сеть успешно распознала самолет на картинке.

Google Colaboratory — это очень удобная облачная платформа для обучения глубоких нейронных сетей. Вы получаете ноутбук, похожий на Jupyter, в котором установлены Keras, TensorFlow и другие полезные библиотеки машинного обучения, а также доступен GPU Tesla K80. В этой среде можно очень быстро начать обучать нейронные сети. Не нужно ничего дополнительно устанавливать, все уже готово к работе. И самое главное, это абсолютно бесплатно!

При работе с Colaboratory нужно учитывать некоторые особенности, связанные с тем, что используется виртуальна машина в облаке. Во-первых, при каждом запуске нужно заново загружать данные для обучения нейронной сети на виртуальную машину. Во-вторых, после обучения нейронной сети нужно ее сохранить не только на диски виртуальной машины, но и скачать на свой компьютер. Для этого можно использовать модуль google.colab . Если не скачать обученную нейронную сеть себе, то она будет удалена во время остановки виртуальной машины.

Также нужно учитывать, что максимальное время, на которое выделяется виртуальная машина — 12 часов. При наличии GPU за такое время можно обучить достаточно сложную сеть. Но если вам этого недостаточно, то можно сохранять сеть и состояние оптимизатора, когда время работы виртуальной машины будет подходить к концу. Затем можно запускать новую машину, загружать сохраненное состояние и продолжать обучение. Инструкция по сохранению модели совместно с состоянием оптимизатора есть на сайте Keras.

PyBrain работаем с нейронными сетями на Python


В рамках одного проекта столкнулся необходимостью работать с нейронными сетями, рассмотрел несколько вариантов, больше всего понравилась PyBrain. Надеюсь её описание будет многим интересно почитать.

PyBrain — одна из лучших Python библиотек для изучения и реализации большого количества разнообразных алгоритмов связанных с нейронными сетями. Являет собой удачный пример совмещения компактного синтаксиса Python с хорошей реализацией большого набора различных алгоритмов из области машинного интеллекта.

  • Исследователей — предоставляет единообразную среду для реализации различных алгоритмов, избавляя от потребности в использовании десятков различных библиотек. Позволяет сосредоточится на самом алгоритме а не особенностях его реализации.
  • Студентов — с использованием PyBrain удобно реализовать домашнее задание, курсовой проект или вычисления в дипломной работе. Гибкость архитектуры позволяет удобно реализовывать разнообразные сложные методы, структуры и топологии.
  • Лекторов — обучение методам Machine Learning было одной из основных целей при создании библиотеки. Авторы будут рады, если результаты их труда помогут в подготовке грамотных студентов и специалистов.
  • Разработчиков — проект Open Source, поэтому новым разработчикам всегда рады.
О библиотеке

PyBrian представляет собой модульную библиотеку предназначенную для реализации различных алгоритмов машинного обучения на языке Python. Основной его целью является предоставление исследователю гибких, простых в использовании, но в то же время мощных инструментов для реализации задач из области машинного обучения, тестирования и сравнения эффективности различных алгоритмов.
Название PyBrain является аббревиатурой от английского: Python-Based Reinforcement Learning, Artificial Intelligence and Neural Network Library.
Как сказано на одном сайте: PyBrain — swiss army knife for neural networking ( PyBrain — это швейцарский армейский нож в области нейро-сетевых вычислений).

Библиотека построена по модульному принципу, что позволяет использовать её как студентам для обучения основам, так и исследователям, нуждающимся в реализации более сложных алгоритмов. Общая структура процедуры её использования приведена на следующей схеме:

Сама библиотека является продуктом с открытым исходным кодом и бесплатна для использования в любом проекте с единственно оговоркой, при её использовании для научных исследований, они просят добавлять в список цитируемых информационных источников (что народ и делает) следующую книгу:

Основные возможности
  • Алгоритмы обучения с учителем (Supervised Learning ).
      (Back-Propagation) (Resilient propagation) (интерфейс к сторонней библиотеке LIBSVM)
    • Стоимостные (Value-based)
        (с/без вычислением приемлемых путей)
      • REINFORCE
        (дискретный) (дискретный) (непрерывный) (непрерывный)
      • Сети прямого распространения, включая Deep Belief Networks и Restricted Boltzmann Machines (RBM) ( Recurrent networks — RNN), включая архитектуру Long Short-Term Memory (LSTM) (MDRNN) / Self-Organizing Maps / Bidirectional networks
      • Создание топологий собственной структуры
      Инструменты
      • Построение / Визуализация графиков
      • Поддержка netCDF
      • Запись/чтение XML
      Установка библиотеки

      Перед установкой Pybrain, создатели рекомендуют установить следующие библиотеки:
      Setuptools — пакетный менеджер для Python, который значительно упрощает установку новых библиотек. Для его установки рекомендуется скачать и выполнить (python ez_setup.py) этот скрипт.
      После установки у Вас появиться возможность использовать команду для установки новых библиотек.
      Сразу воспользуемся ими и установим два необходимых пакета:

      Далее устанавливается сама PyBrain

        Либо используем репозиторий с github

      Основы работы с библиотекой
      Создание нейронной сети

      Создание нейронной сети с двумя входами, тремя скрытыми слоями и одним выходом:

      В результате, в объекте net находится созданная нейронная цепь, инициализированная случайными значениями весов.

      Функция активации

      Функция активации задаётся следующим образом:

      Количество элементов передаваемых в сеть должно быть равно количеству входов. Метод возвращает ответ в виде единственного числа, если текущая цепь имеет один выход, и массив, в случае большего количества выходов.

      Получение данных о сети

      Для того, чтобы получить информацию о текущей структуре сети, каждый её элемент имеет имя. Данное имя может быть дано автоматически, либо по иным критериям при создании сети.
      К примеру, для сети net имена даны автоматически:

      Скрытые слои поименованы с номером слоя добавленным к имени.

      Возможности при создании сети
      • BiasUnit
      • GaussianLayer
      • LinearLayer
      • LSTMLayer
      • MDLSTMLayer
      • SigmoidLayer
      • SoftmaxLayer
      • StateDependentLayer
      • TanhLayer

      Также возможно задать и тип выходного слоя:

      Дополнительно возможно использование смещения (bias)

      Оперирование данными (Building a DataSet)

      Созданная сеть должна обрабатывать данные, работе с которыми и посвящён этот раздел. Типичным набором данных является набор входных и выходных значений. Для работы с ними PyBrain использует модуль pybrain.dataset, также далее используется класс SupervisedDataSet.

      Настройка данных

      Класс SupervisedDataSet используется для типичного обучения с учителем. Он поддерживает массивы выходных и выходных данных. Их размеры задаются при создании экземпляра класса:
      Запись вида:

      означает, что создаётся структура данных для хранения двухмерных входных данных и одномерных выходных.

      Добавление образцов

      Классической задачей при обучении нейронной сети является обучение функции XOR, далее показан набор данных используемый для создания такой сети.

      Исследование структуры образца

      Для получения массивов данных в текущем их наборе возможно использовать стандартные функции Python для работы с массивами.

      выведет 4, так-как это количество элементов.
      Итерация по множеству также может быть организована обычным для массивов способом:

      Также к каждому набору полей можно получить прямой доступ с использованием его имени:

      Также можно вручную освободить занимаемую образцом память полностью его удалив:

      Тренировка сети на образцах

      В PyBrain использована концепция тренеров (trainers) для обучения сетей с учителем. Тренер получает экземпляр сети и экземпляр набора образцов и затем обучает сеть по полученному набору.
      Классический пример это обратное распространение ошибки (backpropagation). Для упрощения реализации этого подход в PyBrain существует класс BackpropTrainer.

      Обучающий набор образцов (ds) и целевая сеть (net) уже созданы в примерах выше, теперь они будут объединены.

      Тренер получил ссылку на структуру сети и может её тренировать.

      Вызов метода train() производит одну итерацию (эпоху) обучения и возвращает значение квадратичной ошибки (double proportional to the error).
      Если организовывать цикл по каждой эпохи нет надобности, то существует метод обучающий сеть до сходимости:

      Данный метод возвратит массив ошибок для каждой эпохи.

      Ещё примеры реализации разных сетей

      приведён пример создания сети с загрузкой данных из .mat файла.

      Немного ссылок:
        ? . ? ? ? , статья 2010 года. , также от 2010.
      Заключение

      В заключении хочу сказать, что эта библиотека производит очень хорошее впечатление, работать с ней удобно, описания алгоритмов получаются компактные, но не теряют понятности в дебрях кода.

      Практическое применение нейросетей в трейдинге. Python (Часть I)

      В предыдущей статье «Практическое применение нейросетей в трейдинге. Переходим к практике» мы рассмотрели практическое использование нейросетевого модуля, реализованного на нейронных сетях Matlab. Но в ней были опущены вопросы подготовки входных данных, работы над обучением НС. В этой статье эти вопросы будут подняты в конкретных примерах и реализованы на нейронных сетях библиотек, работающих с Python. Однако принцип реализации торговой системы будет несколько иным. Этот вариант был кратко описан в пункте 5 базовой статьи «Практическое применение нейросетей в трейдинге». Для этого мы используем библиотеку машинного обучения T ensorFlow, разработанной компанией Google. А для описания нейронных сетей используем библиотеку Keras.

      1. Подготовка данных

      Остановимся на нескольких моментах подготовки к обучению нейронных сетей.

      • В данной разработке, для принятия решения, мы будем использовать по две НС для открытия позиций в одном направлении
      • Исходя из предыдущего пункта, данные для обучения мы также разделим на два направления.
      • Как и в предыдущей системе, первая нейросеть у нас будет обучаться на построение индикаторов подобных стандартным техническим индикаторам. Такой вариант в предыдущей системе был обусловлен тем, что мы использовали само писанные индикаторы и нам не хотелось перегружать рабочий эксперт. На Python же это обусловлено тем, что от терминала мы можем получить только котировки, и тогда нам необходимо для подготовки данных для НС строить эти индикаторы в скрипте Python. Но научив нейронную сеть строить подобные индикаторы, мы обходим необходимость их дублировать в скрипте.
      • Вторая нейросеть строит уже непосредственно сигнальный индикатор, на основе которого мы делаем стратегию торговли.
      • Обучать НС для часового графике пары EURUSD.
      • В результате для построения системы нам необходимо подготовить две НС для сделок на покупку и две на продажу. Всего в системе будет работать четыре нейронные сети.

      Для подготовки данных для обучения сетей мы будем использовать два скрипта — PythonPrices.mq5 и PythonIndicators.mq5.

      Одну выборку мы будем делать от начала рабочего дня до достижения первым минимума дня, вторую до достижения первым максимума дня. Для этого в скриптах мы будем использовать два индикатора DibMin1-1.mq5 и DibMax1-1.mq5

      Индикаторы для выборки

      По достижению ценой дневных экстремумов индикаторы принимают значения равные -1.

      После отработки на графике EURUSDH1 этих скриптов в папке \Common\Files мы получим шесть файлов в формате CSV.

      • EURUSDInputNet1Max и EURUSDInputNet1Min — файлы с ценовыми данными. В названии файла мы видим, что, например, файл EURUSDInputNet1Max является файлом входных данных для нейронной сети Net1Max.
      • EURUSDInputNet2OutNet1Max и EURUSDInputNet2OutNet1Min — файлы со значениями индикаторов. Эти значения будут входами для Net2 и выходами для Net1. Сразу же отмечу, что здесь надо экспериментировать — обучать Net2 можно либо на стандартных технических индикаторах, либо на откликах Net1.
      • EURUSDOutNet2Max и EURUSDOutNet2Min — выходы для Net2: ценовая разница между ценой открытием часа и открытия дня (либо закрытия дня и и открытием часа ).
      1. Нейронные сети мы обучаем на приближении цены к ее экстремумам, интерпретируя не саму цену, а индикаторные значения.
      2. Целями НС для нас является разница между ценами открытием часа и открытия дня ( закрытия дня и открытия часа ) . Здесь также можно экспериментировать, ставя перед НС другие цели — допустим, разницу между другими ценами.
      3. При таком подходе мы сглаживаем вероятности ошибочных откликов в целом нейросетевых модулей, так как обучаем НС не конкретно на поиск максимальной либо минимальной цен дня, но и на вероятность приближения к ним, учитывая амплитуду цен до дневного экстремума. Если же мы решим ориентироваться на амплитуду цен после, то можно использовать разницу цен между закрытием дня и открытием часа . Думаю, что первый вариант предпочтительнее, так как в этом случае мы обучаем НС на достигнутых целях, а не на событиях, которые должны только произойти. Что, согласитесь, логичнее. Ведь оценивать прошедшие события легче, чем давать прогнозы.

      2. Обучение нейронных сетей Python

      Первое, что нам надо сделать — это воспользоваться справочником MQL5 разделом «Интеграция». После установки Python 3.8 и подключения модуля интеграции MetaTrader5 таким же образом подключим библиотеки TensorFlow, Keras, Numpy и Pandas.

      Установка TensorFlow

      Окно установки TensorFlow

      Для обучения нейросетей будем использовать скрипт Python — EURUSDPyTren.py

      Данный скрипт мы так же поместим в папку \Common\Files .

      Посмотрим на скрипт повнимательнее.

      Блок подключения библиотек, пакетов и модулей из Keras.

      Формируем из файлов данных dataframe.

      Последовательная модель сети, входной слой 22 нейрона, выходной — 60.

      Можно поэкспериментировать и добавить скрытый слой.

      Компилируем сеть и напечатаем ее параметры.

      Обучаем НС — эпох 10, размер мини выборки 10, 30 процентов от обучающих данных выделяем на validation. С этими гиперпараметрами сетей так же необходимо поэкспериментировать. Verbose — параметр визуализации эпох обучения. Сохраним обученную нейронную сеть.

      Сформируем dataframe для тестирования.

      Загрузим сохраненные нейронные сети и получим от них результат.

      Сохраним полученные данные в файлы.

      Ожидание закрытие окна.

      Для нормальной отработки скрипта нам необходимо еще подготовить данные для получения откликов нейросетей, которые мы будем использовать для формирования индикатора и последующего исследования на предмет целесообразности его использования в построении стратегии торговли.

      С этой целью мы используем эксперт PythonTestExpert.

      Эксперт мы запустим в тестере стратегий на H1 по ценам открытия. Диапазон возьмем от начала 2011 года по сегодняшний день. С помощью этого эксперта мы моделируем данные, которые при реальной работе, скрипт Python будет формировать из приходящих цен от MT5.

      Запуск эксперта для формирования тестовых данных

      В папке \Common этот эксперт создаст нам два файла EURUSDTest и EURUSDDate.

      Запустим скрипт Python EURUSDPyTren.py. (Если он не будет работать, то может понадобиться переустановка дополнительных пакетов, которые мы устанавливали ранее и перезагрузка компьютера). Если мы все сделали правильно, то скрипт будет запускаться двойным щелчком.

      Работа скрипта

      В результате в папке \Common\Files мы получим такие файлы —

      • net1Max.h5, net1Min.h5, net2Max.h5, net2Min.h5 — обученные нейронные сети, которые будут использоваться в рабочем скрипте при ведении торговли в реальном времени.
      • IndicatorMax и IndicatorMin — два отклика НС для раздельного тестирования.
      • Indicator — совмещенный отклик.

      Папка \Common\Files

      В торговом терминале запустим индикатор 1_MT5.

      Индикатор

      Мы особо не старались при обучении нейронных сетей, но определенные зависимости уже видны.

      3. Оптимизация полученных результатов.

      Для оптимизации полученного индикатора воспользуемся экспертом PythonOptimizExpert.

      У нас есть такие переменные, которые мы можем оптимизировать

      • Н1, Н2 — часы дня, между которыми будет происходить покупка.
      • Н3 ,H4 — часы дня, между которыми будет происходить продажа.
      • Buy, Buy1 — в данном варианте уровни красной линии индикатора Buf_0[] — отклик НС обученной на данных до минимума дня.
      • Sell, Sell1 — в данном варианте, уровни синей линии индикатора Buf_1[] — отклик НС обученной на данных до максимума дня.
      • LossBuy, ProfitBuy, LossSell, ProfitSell — ограничительные уровни.

      Выставим параметры оптимизации, как показано на рисунке. То есть будем оптимизировать только уровни индикатора.

      Оптимизируемые уровни

      Оптимизируемые индикаторные уровни

      Оптимизация

      Параметры оптимизации

      Оптимизация

      Оптимизация

      Оптимизация

      Результаты тестирования. До красной линии на графике теста — период оптимизации, далее тест по оптимизированным параметрам.

      ТестТест

      По полученным параметрам проведем дальнейшую оптимизацию по времени и стоп приказам.

      Оптимизация по полученным параметрам

      Оптимизация по полученным параметрам

      Оптимизация по полученным параметрам

      Протестируем по всем параметрам.

      Тест по полученным параметрам

      Тест по полученным параметрам

      Конечно можно оптимизировать каждое направление торговли отдельно.

      Заключение

      Ниже представленный видеоролик поможет быстрее разобраться с подготовкой к запуску скрипта Python.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *