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

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

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

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

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

Q&A

0回答

962閲覧

Anacondaでの強化学習について

okake

総合スコア0

強化学習

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

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

0グッド

0クリップ

投稿2021/05/30 14:52

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
https://qiita.com/tanuk1647/items/7b8c2f0d09330cbfacd2
上記のサイトを参考に、強化学習を学習しようとしていたのですが、最初から躓いてしまい、困っております。エラーの意味と対処法について伺いたいです。

発生している問題・エラーメッセージ

--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-11-c7ea9d334d3c> in <module> ----> 1 d = DQNJankenGlico(strategy=Strategy.RANDOM, recycle=True) 2 h = d.test(nb_episodes=1, verbose=1, visualize=True) 3 visualize_positions(d.env) 4 visualize_hands(d.env) <ipython-input-7-5f2addb0abfc> in __init__(self, strategy, recycle) 399 memory = SequentialMemory(limit=50000, window_length=1) 400 policy = BoltzmannQPolicy(tau=1.) --> 401 self.dqn = DQNAgent(model=self.model,nb_actions=self.nb_actions,memory=memory,nb_steps_warmup=1000,target_model_update=1e-2,policy=policy) 402 self.dqn.compile(Adam(lr=1e-3), metrics=[]) 403 ~/opt/anaconda3/lib/python3.8/site-packages/rl/agents/dqn.py in __init__(self, model, policy, test_policy, enable_double_dqn, enable_dueling_network, dueling_type, *args, **kwargs) 106 107 # Validate (important) input. --> 108 if hasattr(model.output, '__len__') and len(model.output) > 1: 109 raise ValueError('Model "{}" has more than one output. DQN expects a model that has a single output.'.format(model)) 110 if model.output._keras_shape != (None, self.nb_actions): ~/opt/anaconda3/lib/python3.8/site-packages/keras/engine/keras_tensor.py in __len__(self) 209 210 def __len__(self): --> 211 raise TypeError('Keras symbolic inputs/outputs do not ' 212 'implement `__len__`. You may be ' 213 'trying to pass Keras symbolic inputs/outputs ' TypeError: Keras symbolic inputs/outputs do not implement `__len__`. You may be trying to pass Keras symbolic inputs/outputs to a TF API that does not register dispatching, preventing Keras from automatically converting the API call to a lambda layer in the Functional Model. This error will also get raised if you try asserting a symbolic input/output directly. ### 該当コード 上記サイトのモジュールのインポートが記載されているコードについてはエラーなし。 その直後の、一回戦についての下記のコードでエラーが発生。

d = DQNJankenGlico(strategy=Strategy.RANDOM, recycle=True)
h = d.test(nb_episodes=1, verbose=1, visualize=True)
visualize_positions(d.env)
visualize_hands(d.env)

### 試したこと 他のサイトも参考にしつつ、モジュールについてはインストールの確認を行なった。 ### 補足情報(FW/ツールのバージョンなど) 初めての質問ですので、説明がわかりづらい点があるかと思われますが、ご教授いただけると幸いです。

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

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

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

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

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

meg_

2021/05/30 15:52

> 他のサイトも参考にしつつ、モジュールについてはインストールの確認を行なった。 参考にしたサイトとバージョンは合わせていますでしょうか?
okake

2021/05/31 00:55

ご回答ありがとうございます 元の参考にしたサイトにバージョンについての説明が記載されていないようなのですが、この場合はどうしようもないのでしょうか?
meg_

2021/05/31 01:15

そうなんですね。Kerasなどはバージョン違いで動かないことがよくあるようです。バージョン下げると上手く行くかもしれません。(1. 系の最終バージョンかもしれませんね)確認はしていないので違っていたらすみません。
okake

2021/05/31 12:31

ありがとうございます。 色々試してみたところ、エラーの内容が変わりました。 これについても、お教えいただきたいです。 --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-4-c7ea9d334d3c> in <module> ----> 1 d = DQNJankenGlico(strategy=Strategy.RANDOM, recycle=True) 2 h = d.test(nb_episodes=1, verbose=1, visualize=True) 3 visualize_positions(d.env) 4 visualize_hands(d.env) <ipython-input-2-9ad0d6d9a6a0> in __init__(self, strategy, recycle) 400 self.dqn = DQNAgent(model=self.model, nb_actions=self.nb_actions, memory=memory, 401 nb_steps_warmup=1000, target_model_update=1e-2, policy=policy) --> 402 self.dqn.compile(Adam(lr=1e-3), metrics=[]) 403 404 self.__istrained = False ~/opt/anaconda3/envs/janken/lib/python3.6/site-packages/rl/agents/dqn.py in compile(self, optimizer, metrics) 194 loss_out = Lambda(clipped_masked_error, output_shape=(1,), name='loss')([y_true, y_pred, mask]) 195 ins = [self.model.input] if type(self.model.input) is not list else self.model.input --> 196 trainable_model = Model(inputs=ins + [y_true, mask], outputs=[loss_out, y_pred]) 197 assert len(trainable_model.output_names) == 2 198 combined_metrics = {trainable_model.output_names[1]: metrics} TypeError: __init__() got an unexpected keyword argument 'inputs'
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問