Итак, я написал этот код в меру своих возможностей. Я отладил его, и после некоторых усилий он начал работать. Но сеть все еще не учится. Перепробовав тысячи комбинаций вознаграждений, реализаций алгоритмов, гиперпараметров и различных исправлений ошибок, нейронная сеть по-прежнему не тренируется правильно. Лучшими результатами, которых мне удалось достичь, были 500 успешных достижений целей из 5000 эпизодов, а я еще даже не начал рассматривать энергоэффективный путь. С текущими гиперпараметрами и вознаграждениями я могу справиться только с 80 успешными достижениями целей из 5000 эпизодов. Затем либо сеть начинает работать хуже, либо я получаю сообщение об ошибке, указывающее, что в выходных данных сети есть значения NaN (бесконечные или другие недопустимые значения).
Я знаю, что мои навыки Python определенно могут помочь будь лучше. Я также уверен, что у меня есть несколько действительно глупых ошибок (как логических, так и синтаксических), которые я, вероятно, пропустил в коде, тем более что никто больше не проверял проект. Буду очень признателен за любые отзывы по всем возможным аспектам.
У меня могут быть не только простые ошибки в коде, но и алгоритм PPO может быть реализован неправильно, или выбранная нейронная сеть и ее структура может быть неправильной.
Вот структура проекта:
Папка PPO: содержит два файла:
actor_critic.py: здесь реализуется нейронная сеть.
ppo.py: реализуется алгоритм оптимизации проксимальной политики (PPO).< /li>
[*]Папка Train: на данный момент содержит только один файл:
hyperparameter_optimization .py: Изначально этот файл использовался для случайного поиска лучших гиперпараметров. В настоящий момент он используется для попытки обучения основной сети.
[*]environment.py: Этот файл содержит среду. с которым взаимодействует агент.
[*]Main.py: просто служит точкой входа для запуска всего проекта.
[*]path Папка: используется для хранения журналы и сети по мере необходимости.
[*]config.yaml: содержит несколько переменных, двумерную сетку с препятствиями (0 для свободного места, 1 для препятствия) и путь для сохранения. различные предметы.
В окружающей среде для расчета энергопотребления используются упрощенные формулы с заранее заданными коэффициентами.
< strong>environment.py:
Использованная карта очень проста: сетка 5x5 с одним препятствием, расположенным по диагонали (даже на этой базовой карте я все еще не могу добиться приличных результатов).
Итак, я написал этот код в меру своих возможностей. Я отладил его, и после некоторых усилий он начал работать. Но сеть все еще не учится. Перепробовав тысячи комбинаций вознаграждений, реализаций алгоритмов, гиперпараметров и различных исправлений ошибок, нейронная сеть по-прежнему не тренируется правильно. Лучшими результатами, которых мне удалось достичь, были 500 успешных достижений целей из 5000 эпизодов, а я еще даже не начал рассматривать энергоэффективный путь. С текущими гиперпараметрами и вознаграждениями я могу справиться только с 80 успешными достижениями целей из 5000 эпизодов. Затем либо сеть начинает работать хуже, либо я получаю сообщение об ошибке, указывающее, что в выходных данных сети есть значения NaN (бесконечные или другие недопустимые значения). Я знаю, что мои навыки Python определенно могут помочь будь лучше. Я также уверен, что у меня есть несколько действительно глупых ошибок (как логических, так и синтаксических), которые я, вероятно, пропустил в коде, тем более что никто больше не проверял проект. Буду очень признателен за любые отзывы по всем возможным аспектам. У меня могут быть не только простые ошибки в коде, но и алгоритм PPO может быть реализован неправильно, или выбранная нейронная сеть и ее структура может быть неправильной. Вот структура проекта: [list] [*]Папка PPO: содержит два файла:
actor_critic.py: здесь реализуется нейронная сеть. [*]ppo.py: реализуется алгоритм оптимизации проксимальной политики (PPO).< /li> [/list]
[*]Папка Train: на данный момент содержит только один файл: [list] hyperparameter_optimization .py: Изначально этот файл использовался для случайного поиска лучших гиперпараметров. В настоящий момент он используется для попытки обучения основной сети. [/list]
[*]environment.py: Этот файл содержит среду. с которым взаимодействует агент. [*]Main.py: просто служит точкой входа для запуска всего проекта. [*]path Папка: используется для хранения журналы и сети по мере необходимости. [*]config.yaml: содержит несколько переменных, двумерную сетку с препятствиями (0 для свободного места, 1 для препятствия) и путь для сохранения. различные предметы.
В окружающей среде для расчета энергопотребления используются упрощенные формулы с заранее заданными коэффициентами. < strong>environment.py: [code]import numpy as np import logging logging.basicConfig(filename='path where to save logs', level=logging.DEBUG, format='%(asctime)s %(message)s')
# Repulsive force rep_force = np.zeros(2, dtype=np.float64) radius = 10 # Radius of the area around the agent's position,to reduce the search area x, y = int(self.position[0]), int(self.position[1])
# Iterate only over cells within the radius for i in range(max(0, x - radius), min(self.map_size[0], x + radius + 1)): for j in range(max(0, y - radius), min(self.map_size[1], y + radius + 1)): if self.obstacles[j][i] == 1: obstacle_pos = np.array([i, j]) distance = np.linalg.norm(obstacle_pos - np.array(self.position)) if distance == 0: rep_force = np.array([-100.0, -100.0], dtype=np.float64) continue # Skip the calculation if the agent has already crashed
# Save best hyperparameters with open(os.path.join(config['checkpoint_dir'], 'best_hyperparams.yaml'), 'w') as file: yaml.dump(best_hyperparams, file) else: no_improvement_rounds += 1
if no_improvement_rounds >= early_stopping_rounds: print(f'Early stopping triggered after {trial+1} trials.') break
print(f'Best Hyperparameters: {best_hyperparams} \t Best Average Reward: {best_reward}') return best_hyperparams
if __name__ == "__main__": optimize_hyperparameters()
[/code] [b]Main.py:[/b] [code] from Train.hyperparameter_optimization import optimize_hyperparameters if __name__ == "__main__": num_trials = 10000 early_stopping_rounds = 10000 optimize_hyperparameters(num_trials=num_trials, early_stopping_rounds=early_stopping_rounds)
max_episodes: 1000 max_timesteps: 300 num_eval_episodes: 100000 log_interval: 10 save_interval: 50 num_trials: 10000 early_stopping_rounds: 10000 [/code] Использованная карта очень проста: сетка 5x5 с одним препятствием, расположенным по диагонали (даже на этой базовой карте я все еще не могу добиться приличных результатов).
Я работаю над проектом обнаружения DeepFake, используя TensorFlow 2.6.2 в Windows. Из -за конфликтов версий в упаковке (например, TensorFlow == 2.6.2 требует плоских буферов == 1.12, но MediaPipe требует плоских буферов> = 2,0), я решил отделить...
Я новичок в любом случае, но работаю в алгоритмах исследований операций, и я попал в некоторые препятствия в своем проекте. Этот пост будет долгим - это хроника моей борьбы, и, честно говоря, это было утомительно. Кроме того, я надеюсь...
Мой проект направлен на планирование пути для группы роботов, путешествующих по однонаправленным путям, аналогичным железным дорогам, что не дает им столкнуться на пересечениях на трассах (их радар очень плохой и не может обнаружить, присутствуют ли...
Вопросу «Преобразовать абсолютный путь к файловой системе в URI файла независимо от платформы»
уже шесть лет, и теперь у нас есть URL-адрес повышения /url/doc/html/index.html.
Можно ли преобразовать путь абс с помощью URL-адреса повышения?
Я...
У меня есть ноутбук, который читает файлы CSV из SharePoint и загружает их в Snowflake. Код отлично работает в моей локальной системе. Я хочу запланировать ежедневную работу этого ноутбука в облаке. Я изучил функции Azure, создал функцию в студии...