Neural Network Libraries v1.39.0 をリリースしました!
このリリースに伴い、nnabla-rl も v0.15.0 にアップデートしました!
重要なリリースアイテムはSpotlightをご確認ください。
Spotlight
nnabla: Add mlflow autolog to monitors
nnablaのMonitorにMLFlowのサポートを追加しました。
学習時にnnablaのMonitorが自動的にデータをMLflowのmetricsとして保存します。
以下は簡単なtrain.py
の例です:
import nnabla.autolog as autolog
import mlflow
from nnabla.monitor import Monitor, MonitorSeries
mlflow.set_experiment("a-quick-example")
# Start autolog
autolog.autolog(with_save_parameters=True)
# Create monitor
monitor = Monitor('./')
metric_monitor = MonitorSeries("metric", monitor, 1)
with mlflow.start_run():
# Training-loop
for i in range(10):
# Do something here
metric_monitor.add(i, i * 2)
# Do something here
# Stop autolog
autolog.stop_autolog()
以下のnnabla MonitorがMLflowをサポートしています:
- MonitorSeries
- MonitorTimeElapsed
- MonitorImage
- MonitorImageTile
事前にmlflow
をインストールしてください:
$ pip install mlflow
パラメータをMLflowのartifactとして自動的に保存するには、with_save_parameters=True
を渡してください。
MLflowのTrackingを介してローカルで学習結果を確認することができます:
$ python train.py
$ mlflow ui --port 8080
ブラウザで http://localhost:8080/
にアクセスしてください。
また既にMLflow Trackingサーバがある場合は:
$ export MLFLOW_TRACKING_URI=http://your-tracking-server:port
$ python train.py
ブラウザで http://your-tracking-server:port/
にアクセスしてください。
nnabla-rl: Support Gymnasium
ついにGymnasiumがこの新しいバージョンのnnabla-rlでサポートされました.
Gymnasium2GymWrapperを利用することで簡単にGymnasiumの各環境をnnabla-rlで学習させられます.
こちらはGymnasiumのpendulumをDDPGで学習する簡単な例です:
import gymnasium as gym
from nnabla_rl.environments.wrappers.gymnasium import Gymnasium2GymWrapper
env = gym.make('Pendulum-v1')
# Wrap the environment
env = Gymnasium2GymWrapper(env)
# Now, you can use the Gymnasium environment with nnablaRL algorithms!
config = A.DDPGConfig(start_timesteps=200, gpu_id=0)
ddpg = A.DDPG(train_env, config=config)
ddpg.train(train_env, total_iterations=10000)
たくさんの新しいアルゴリズムがnnabla-rlに実装されました!
以下の新しいアルゴリズムが今回のリリースからサポートされました!:
– HyAR: Addressing Discrete-Continuous Action Reinforcement Learning via Hybrid Action Representation(HyAR)
– Sample-Efficient Reinforcement Learning by Breaking the Replay Ratio Barrier(SRSAC)
– AMP: Adversarial Motion Priors for Stylized Physics-Based Character Control(AMP)
Algorithm highlight: AMP
自然なモーションを生成しながら目的のタスクを達成する方策を学習する強化学習アルゴリズムのAMP (Adversarial Motion Priors for Stylized Physics-Based Character Control)が追加されました。
我々の実装はAMPの元論文と同等の性能を各タスクで達成できることを確認しています。より詳しくはこちらのAMPの再現コードをご確認ください.
nnabla
BugFix
- fix bug of network expander for duplicated name
- bugfix for optimizer state recovery
- fix atomicInc called too many times causes rewind
Utilities
- save executors in graph_def
- Allow to set the parameter file format
- Add code organization framework
- add mlflow save and load model support
Build
- add include cctype to avoid error in specified platform
- fix build errors to upgrade cython (CPU / GPU)
- limit matplotlib version for windows
Format Converter
- Faster Split when input share is large on onnx importer
- Add test when input shape changes
- limit tensorflow version lower than 2.15
Document