Как сделать форму параметра переменной?

Предположим, я оптимизирую количество ветряных турбин в ветропарке. Форма макета является переменной, управляемой оптимизатором. Если я не объявляю форму или значение параметра, я получаю ошибку:

ValueError: Shape of output 'U' must be specified because 'val' is not set

но форма U зависит от размера входного параметра, который неизвестен.

Должен ли я создать внешний модуль, в который оптимизатор записывает фигуру, и должен ли мой компонент считывать фигуру? Или есть намного более простой способ? Спасибо!

1 ответ

Решение

Это не может быть на самом деле неизвестно. Я обычно делаю это с аргументом __init__ метод. Когда вы настраиваете свой класс, вы передаете размер необходимых вам переменных (или некоторое число, которое позволяет вам вычислить размер класса, например, n_turbines). Я хотел бы сделать это в подклассе проблемы, которую вы определяете.

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

Другие вопросы по тегам