前提・実現したいこと
私は、python初学者で強化学習について 機械学習スタートアップシリーズ の『Pythonで学ぶ強化学習 入門から実践まで』で学習しています。
その中で、学習済みのデータが保存されるdqn_agent.h5
が作成されず、困っています。
長文になりますがよろしくお願いします。
発生している問題・エラーメッセージ
エラーでは、dqn_agent.h5
というファイルまたはディレクトリがないため、ファイルを開けないという風になっていると思います。
ErrormMessage
1OSError: Unable to open file (unable to open file: name = '/home/python/ml/baby-steps-of-rl-ja/FN/logs/deep_q_network/dqn_agent.h5', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)
ソースコード(一部抜粋)
python
1# dqn_agent.py > DeepQNetworkTrainer(Trainer) > episode_end(self, episode, step_count, agent) 2 def episode_end(self, episode, step_count, agent): 3 reward = sum([e.r for e in self.get_recent(step_count)]) 4 self.loss = self.loss / step_count 5 self.reward_log.append(reward) 6 if self.training: 7 self.logger.write(self.training_count, "loss", self.loss) 8 self.logger.write(self.training_count, "reward", reward) 9 self.logger.write(self.training_count, "epsilon", agent.epsilon) 10 if reward > self._max_reward: 11 # 以下で保存されていない? 12 agent.save(self.logger.path_of(self.file_name)) 13 self._max_reward = reward 14 if self.is_event(self.training_count, self.teacher_update_freq): 15 agent.update_teacher() 16 17 diff = (self.initial_epsilon - self.final_epsilon) 18 decay = diff / self.training_episode 19 agent.epsilon = max(agent.epsilon - decay, self.final_epsilon) 20 21 if self.is_event(episode, self.report_interval): 22 recent_rewards = self.reward_log[-self.report_interval:] 23 self.logger.describe("reward", recent_rewards, episode=episode)
冗長になるため、一部を抜粋しました。全文は以下のgithubのリングにあります。
・メインコード : dqn_agent.py
・FNAgent, Trainer, Observer を定義: fn_framework.py
試したこと
使用したコマンドとその実行結果を以下に載せます。
一部省略、パスの書き換えを行いました。
command
1$ python3 dqn_agent.py --test
output
1pygame 1.9.6 2Hello from the pygame community. https://www.pygame.org/contribute.html 3couldn't import doomish 4Couldn't import doom 52020-07-29 00:08:08.495350: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA 6Train on test mode 7At episode 10, reward is 21.4 (+/-11.926) 8At episode 20, reward is 23.9 (+/-10.464) 9At episode 30, reward is 24.0 (+/-8.683) 10(省略) 11At episode 200, reward is 20.4 (+/-7.592) 12Done initialization. From now, begin training! 13At episode 210, reward is 13.9 (+/-2.773) 14(省略) 15At episode 1190, reward is 183.5 (+/-35.539)
command
1$ python3 dqn_agent.py --play
output
1pygame 1.9.6 2Hello from the pygame community. https://www.pygame.org/contribute.html 3couldn't import doomish 4Couldn't import doom 52020-07-29 00:19:06.734537: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA 6/home/python/ml/baby-steps-of-rl-ja/venv/lib/python3.6/site-packages/gym/logger.py:30: UserWarning: WARN: Environment '<class 'gym_ple.ple_env.PLEEnv'>' has deprecated methods '_step' and '_reset' rather than 'step' and 'reset'. Compatibility code invoked. Set _gym_disable_underscore_compat = True to disable this behavior. 7 warnings.warn(colorize('%s: %s'%('WARN', msg % args), 'yellow')) 8Traceback (most recent call last): 9 File "dqn_agent.py", line 237, in <module> 10 main(args.play, args.test) 11 File "dqn_agent.py", line 218, in main 12 agent = agent_class.load(obs, path) 13 File "/home/python/ml/baby-steps-of-rl-ja/FN/fn_framework.py", line 33, in load 14 agent.model = K.models.load_model(model_path) 15 File "/home/python/ml/baby-steps-of-rl-ja/venv/lib/python3.6/site-packages/tensorflow/python/keras/engine/saving.py", line 219, in load_model 16 f = h5py.File(filepath, mode='r') 17 File "/home/python/ml/baby-steps-of-rl-ja/venv/lib/python3.6/site-packages/h5py/_hl/files.py", line 394, in __init__ 18 swmr=swmr) 19 File "/home/python/ml/baby-steps-of-rl-ja/venv/lib/python3.6/site-packages/h5py/_hl/files.py", line 170, in make_fid 20 fid = h5f.open(name, flags, fapl=fapl) 21 File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper 22 File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper 23 File "h5py/h5f.pyx", line 85, in h5py.h5f.open 24OSError: Unable to open file (unable to open file: name = '/home/python/ml/baby-steps-of-rl-ja/FN/logs/deep_q_network/dqn_agent.h5', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)
補足情報(FW/ツールのバージョンなど)
使用したバージョン
・python : 3.6.9
・gym=========0.14.0
・gym-ple======0.3 ~/python/ml/baby-steps-of-rl-ja/venv/src/gym-ple
・h5py========2.9.0
・jupyter======1.0.0
・notebook=====6.0.3
・numpy=======1.16.4
・pandas=======0.24.2
・pip=========20.1.1
・ple=========0.0.1 ~/python/ml/baby-steps-of-rl-ja/venv/src/ple
・pygame======1.9.6
・scikit-learn==0.21.2
・scipy=========1.3.0
・tensorboard===1.12.2
・tensorflow====1.12.0
・tqdm========4.32.1
あなたの回答
tips
プレビュー