質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
強化学習

強化学習とは、ある環境下のエージェントが現状を推測し行動を決定することで報酬を獲得するという見解から、その報酬を最大限に得る方策を学ぶ機械学習のことを指します。問題解決時に得る報酬が選択結果によって変化することで、より良い行動を選択しようと学習する点が特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

997閲覧

強化学習での学習済みのファイルが作成(保存)されない

taro-__________

総合スコア0

強化学習

強化学習とは、ある環境下のエージェントが現状を推測し行動を決定することで報酬を獲得するという見解から、その報酬を最大限に得る方策を学ぶ機械学習のことを指します。問題解決時に得る報酬が選択結果によって変化することで、より良い行動を選択しようと学習する点が特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/07/28 16:05

前提・実現したいこと

私は、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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aokikenichi

2020/07/29 09:03

「一部省略、パスの書き換えを行いました。」はどこをどう変えたのでしょうか。 私もこの本のコードを実行しましたが、特にパスを指定しない場合は 直下の logs/ 配下に吐かれる仕様かなと思っていました。 パスのフォルダは存在しているのでしょうか。
taro-__________

2020/08/05 07:22 編集

返信遅くなり申し訳ありません。 >「一部省略、パスの書き換えを行いました。」はどこをどう変えたのでしょうか。 変えたのは、teratail の質問で、出力の部分です。 パスの書き換えは、『/home/username』のユーザー名で不要と感じたため、削除しました。 一部省略は、『At episode 10, reward is 21.4 (+/-11.926)』の部分が 10 ~ 1190 まで 10 刻みで表示されていた部分を省略しました。 パスのフォルダは存在しています。また、存在している ./logs/deep_q_network/ のディレクトリには dqn_agent_test.h5 ,events.out.tfevents.1595911704.bf6c9741979c の二つのファイルがありました。 dqn_agent_test.h5 には --test で実行したときに作成されるファイルだと思っています。 events.out.tfevents.1595911704.bf6c9741979c については、よく分かっていませんが、 tensorboard に関係があるファイルだと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問