0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

強化学習32 Colaboratoryに進捗バーをつける。chainerrl魔改造

Last updated at Posted at 2019-12-09

中学生から大学のAI初学者が対象です。

ログファイルは、ダラダラと出されても疲れてしまいます。
loggingはOSに近いところで動作するためか、使い分けが困難です。
そこで、loggingをlogファイルに出力するようします。

import logging
logging.basicConfig(level=logging.INFO, filename='log')

このようにしてしまうと、全部がファイル出力となってしまいます。
そこで、chainerrlを魔改造します。
前にも書いてありますが、一部をchokozainerrlにして、いじっているので、そちらを変更します。
train_agent.pyとevaluator.pyのlog出力部分を一部だけ、print出力に変更しました。

そして、進捗バーをつけます。

train_agent.py
 # add
   import tqdm
   if log_type=='pbar' :
        pbar= tqdm(total=steps,position=0)
        if step_offset>0:
            pbar.update(step_offset)
 
# 必要なところに追加 1%を超えるくらい進行したらバーをupdate
    if(log_type=='pbar'):
        if(t-pbar.n)>= steps*0.01:
             pbar.update(t-pbar.n)

気になる方は、chokozainerRLのtrain_agent.pyの中身を見てください。
 ポイントは、position=0と設定するところです。
こうしておくと、進捗中に追加されたコンソール出力は進捗バーの下に表示されます。
 また、pbar.nですが、公式のマニュアルにも、いろいろなところにも書いていません。なので、少しだけ説明します。
 tqdmは、下記のgithubにあります。 
https://github.com/tqdm/tqdm
 こちらのソースコードからすると、pythonで書かれているようです。pipでインストールできるのでそうなのでしょう。
nはtqdmのクラスメンバー変数で、tqdmの現在値を表しています。不勉強なのでわかっていないのですが、pythonのクラス変数は、全部public変数のようです。なので、pbar.nのようにアクセスできてしまいます。
 道理で探しても、getやset関数が見つからないわけだ。

これから検証していきますが、ダラダラコンソール出力は、webクライアントに過剰な負担をかけているように思っています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?