faherngeit / rl_pss

Scientific project about Power System Stabiliser based on reinforcement learning techniques
4 stars 0 forks source link

Last commit changes #14

Open faherngeit opened 2 years ago

faherngeit commented 2 years ago

Слушайте, давайте немного пересмотрим порядок вывода новых фич. Например последний коммит выкатил новую фичу с легированием, но из-за этого поменялась сигнатура входной функции и у меня все упало. Чтобы такого не было, предлагаю несколько идей:

  1. Делать новые фичи, если они не касаются принципиальной части, делать опциональными, включаемыми по ключу. Мне кажется логирование результатов, которое еще и весит 2+ Гб можно не включать постоянно, особенно когда мы еще выстраиваем архитектуру всего решения.
  2. В дополнение к предыдущему пункту призываю использовать "аргументы по умолчанию" с помощью следующего интерфейса: https://www.mathworks.com/help/matlab/ref/arguments.html. В частности, мне сейчас нужно в питоне у себя добавить два аргумента для функции, назначение которых и допустимые значения я не знаю, а так можно их определить значениями по умолчанию, а дальше при необходимости изменить.

Отдельно прошу в этой ветке написать, как мне поправить вот эту строку, чтобы все заработало? https://github.com/faherngeit/rl_pss/blob/fba9f3a11eb42c4c7b633d3b1fd585e330e4d7a7/rest_agent/train.py#L291

HipHopZmey commented 2 years ago

Сразу скажу по последнему пункту, новый вид функции: simWrapper(scenarios_file, reward_type, penalty, exp_num, result_directory) Вот так для меня это выглядит: request = eng.simWrapper('scenariosNormState', 'IntMaxDeltaWs', 1.0e+06, 1, "C:\Users\Pavel\Documents")

Нужно последним аргументом отдать ему путь к папке, куда сохранять результаты экспериментов.

Я в readme последнего ПР описал функцию обработки сценариев. У неё те же аргументы, что и у simWrapper, только перепутаны местами:

SimOutData(scenarios_file, exp_num, reward_type, penalty, result_directory) SimOutData('scenarios_NormalStates', 1, 'IntMaxDeltaWs', 1.0e+06, "C:\Users\Pavel\Documents")

Это я к тому, что можно посмотреть описание и понять ,что за аргументы. По остальному сейчас тоже отпишусь

HipHopZmey commented 2 years ago

по пунктам:

  1. Хорошо. Ответвлюсь и сделаю возможность не записывать результаты. Просто 2 Гб на мой взгляд это не так много. Мы хотели использовать лог для того, чтобы проверять работу функции, поэтому в принципе можно это писать все время. Лишним не будет.
  2. Аргументы по умолчанию сделаю. Но с путем к своему каталогу все несколько сложнее. Хотя можно указать по умолчанию только на папку, в которой лежит модель. Я думал, может потом уже в процессе параллельного моделирования зашить этот путь в конфиг каждому себе?
faherngeit commented 2 years ago

По поводу логов – в любом случае удобно бы, чтобы это была опциональная фича, потому что все равно будет много экспериментов, где будет проверяться корректность работы всей системы, которая получилась достаточно сложной, а тестами мы ничего не покрывали. Например, что json ходят, модель обновляется и т.д. Для этих стартов полное логгирование переходных процессов точно не нужно. А вот включаемое по условию – вполне. Пути до логов должны быть относительными, а не абсолютными. Во-первых, у меня мак и диска C:\ нет в принципе, плюс на UNIX системах директории в пути разделяются через /, а не \, как на Win. Во-вторых, логично, что логи складываются в ту же папку, где лежат модели и все остальное. Не надо размазывать результаты работы модели по всему компьютеру. Если есть опасения, что логи попадут в репозиторий, давайте создадим папку /log, куда будем писать все и добавим ее в .gitignore