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

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

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Python 3.x

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

2064閲覧

mlagents-learnでエラーメッセージが発生した

nortordam

総合スコア25

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Python 3.x

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2022/12/24 04:51

前提

Unity my agentに付いての質問です。自前のPythonの仮想環境(ヴァージョンは3.8.10)にyamlである「RollerBall.yaml」をWindowsPowerShellで読み込ませようとしたら「AttributeError: module 'numpy' has no attribute 'float'」というエラーが出てきて困っています。Unityのバージョンは20213.10です。

実現したいこと

RollerBall.yamlを読み込んでPythonで学習させたい。
参考サイト:https://note.com/npaka/n/n30707ea92bd1#251dfa4f-56a7-4191-b07d-de1daa7144ed

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

(env) PS D:\Documents\UnityProjects\ml-agents-release_19> mlagents-learn D:\Documents\UnityProjects\ml-agents-release_19\config\sample\RollerBall.yaml --run-id=firstRun Traceback (most recent call last): File "D:\Documents\VirtualEnviorment\Python\Python8\env\Scripts\mlagents-learn-script.py", line 33, in <module> sys.exit(load_entry_point('mlagents', 'console_scripts', 'mlagents-learn')()) File "D:\Documents\VirtualEnviorment\Python\Python8\env\Scripts\mlagents-learn-script.py", line 25, in importlib_load_entry_point return next(matches).load() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.2800.0_x64__qbz5n2kfra8p0\lib\importlib\metadata.py", line 77, in load module = import_module(match.group('module')) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.2800.0_x64__qbz5n2kfra8p0\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 671, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 848, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "d:\documents\unityprojects\ml-agents-release_19\ml-agents\mlagents\trainers\learn.py", line 13, in <module> from mlagents.trainers.trainer_controller import TrainerController File "d:\documents\unityprojects\ml-agents-release_19\ml-agents\mlagents\trainers\trainer_controller.py", line 13, in <module> from mlagents.trainers.env_manager import EnvManager, EnvironmentStep File "d:\documents\unityprojects\ml-agents-release_19\ml-agents\mlagents\trainers\env_manager.py", line 12, in <module> from mlagents.trainers.policy import Policy File "d:\documents\unityprojects\ml-agents-release_19\ml-agents\mlagents\trainers\policy\__init__.py", line 1, in <module> from mlagents.trainers.policy.policy import Policy # noqa File "d:\documents\unityprojects\ml-agents-release_19\ml-agents\mlagents\trainers\policy\policy.py", line 10, in <module> from mlagents.trainers.buffer import AgentBuffer File "d:\documents\unityprojects\ml-agents-release_19\ml-agents\mlagents\trainers\buffer.py", line 97, in <module> class AgentBufferField(list): File "d:\documents\unityprojects\ml-agents-release_19\ml-agents\mlagents\trainers\buffer.py", line 211, in AgentBufferField self, pad_value: np.float = 0, dtype: np.dtype = np.float32 File "d:\documents\virtualenviorment\python\python8\env\lib\site-packages\numpy\__init__.py", line 284, in __getattr__ raise AttributeError("module {!r} has no attribute " AttributeError: module 'numpy' has no attribute 'float'

該当のソースコード

behaviors: RollerBall: trainer_type: ppo max_steps: 500000 time_horizon: 64 summary_freq: 1000 keep_checkpoints: 5 hyperparameters: batch_size: 10 buffer_size: 100 learning_rate: 0.0003 beta: 0.001 epsilon: 0.2 lambd: 0.99 num_epoch: 3 learning_rate_schedule: linear network_settings: normalize: true hidden_units: 128 num_layers: 2 reward_signals: extrinsic: gamma: 0.99 strength: 1.0

試したこと

調べたところyamlのPathに間違いがあるやヴァージョンによってはエラーメッセージが出るとのことなので再調整しましたが、変わらずエラーが出てきました。

補足情報(FW/ツールのバージョンなど)

Unity2021.3.10f
Python3.8
WindowsPowershell
YamlはSublimeTextで作成
参考にした書籍:Unityではじめる機械学習・強化学習 Unity ML-Agents 実践ゲームプログラミング v2.2対応版https://www.amazon.co.jp/Unity%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%BB%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92-Unity-ML-Agents-%E5%AE%9F%E8%B7%B5%E3%82%B2%E3%83%BC%E3%83%A0%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-v2-2%E5%AF%BE%E5%BF%9C%E7%89%88/dp/4862465447

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

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

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

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

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

guest

回答1

0

ベストアンサー

ml-agents が利用している、numpy のバージョンが古いせいのようです。確かに現在のnumpyに、floatという attribute は存在しません。

The deprecation for the aliases np.object, np.bool, np.float, np.complex, np.str, and np.int is expired (introduces NumPy 1.20). Some of these will now give a FutureWarning in addition to raising an error since they will be mapped to the NumPy scalars in the future.

https://github.com/numpy/numpy/releases

加えて、最新のml-agentsは、Python 3.8.13 以上でなければ使えなくなってます。

The minimum supported Python version for ML-agents has changed to 3.8.13. (#)

https://github.com/Unity-Technologies/ml-agents/releases/tag/release_20

numpyのバージョンを最新の安定版に更新しましょうっていうプルリクがあがってるので、これが受け入れられるのを待つしかなさそうです。
https://github.com/Unity-Technologies/ml-agents/pull/5834

今すぐ出来る対策としては、numpy 1.20 未満の古いバージョンをインストールして使うことですかね。

投稿2022/12/24 09:13

Demerara

総合スコア392

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

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

nortordam

2022/12/25 04:23

ありがとうございます。仮想環境にある3.8のnumpyをアインストールしてグレードダウンしたところ、可能になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問