kerneltyu’s blog

理系学生です.

TensorflowでFutureWarning: Conversion of the second argument ... が出た時

お久しぶりです.

Tensorflowを本格的に始めようとしてTensorflowをインストールをしました. インストールできたはいいものの,FutureWarningが出てしまいました.実行には何の問題もないんですが,出力が非常に見にくい! 調べて見たら,issueに改善方法が書かれていたので,メモ代わりにここに残しておきます.出たFutureWarningが下記です.


/Users/kerneltyu/anaconda3/envs/RL/lib/python3.6/site-packages/h5py/__init__.py:34: 
FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`. from ._conv import register_converters as _register_converters
    

まぁ,h5pyに問題があるのは一目瞭然で,h5pyのissueを見に行ったら,解決策が載っていました.


pip install h5py==2.8.0rc1
    

こいつでh5pyのバージョン2.8.0rc1をインストールしてあげれば,FutureWarning出なくなりました.

Anaconda仮想環境構築からOpenAi Gymのフルインストール

前回にOpenAiGymの導入でのエラーについて書いたが、今回はAnacondaで作成した仮想環境上でフルインストールを行いました。 まずAnacondaで仮想環境を作成して、activateする手順です。 仮想環境は、pythonのバージョンとかライブラリの管理が楽になるので使います。

//仮想環境の構築
Orion:~ kerneltyu $  conda create -n RL python=3.6 anaconda
//仮想環境RLのactivate
Orion:~ kerneltyu $ source activate RL
(RL) Orion:~ kerneltyu$
(RL) Orion:~ kerneltyu$ conda info -e
# conda environments:
#
RL                    *  /Users/kerneltyu/anaconda3/envs/RL
root                     /Users/kerneltyu/anaconda3

これで仮想環境の構築とactivateはOK! これからOpenAiGymの導入をしていきます。 まず、cmakeをインストールする。(インストール済みなら省略してください)

yoshihiro-kato.blogspot.jp

上記の通りにインストール! 次にここを参考に github.com

(RL) Orion:~ kerneltyu$ cd /Users/kerneltyu/anaconda3/envs/RL/bin
(RL) Orion:bin kerneltyu $ git clone https://github.com/openai/mujoco-py.git
(RL) Orion:bin kerneltyu $ cd mujoco-py
(RL) Orion:mujoco-py kerneltyu $ sudo python setup.py install
(RL) Orion:mujoco-py kerneltyu $ cd ..

これでmujoco-pyのインストール完了 次にgymのフルインストールをします。

(RL) Orion:bin kerneltyu $ brew install cmake boost boost-python sdl2 swig wget
(RL) Orion:bin kerneltyu $ git clone https://github.com/openai/gym
(RL) Orion:bin kerneltyu $ cd gym
(RL) Orion:gym kerneltyu $ sudo pip install -e .[all]
FileNotFoundError: [Errno 2] No such file or directory: '/Users/kerneltyu/anaconda3/envs/RL/lib/python3.6/site-packages/__pycache__/cython.cpython-36.pyc'

こんなエラーが出たら

(RL) Orion:gym kerneltyu $ sudo pip install -e .[all] --ignore-installed Cython

としましょう。これで回避できるはずです。 以上でOpenAiGymのフルインストール完了です。

論述とはなにか?

久しぶりの文系科目の授業のレポートで論述しなさいという課題を出されました.論述ってなんだっけとなり調べたのでメモ代わりにここに書いておきます.

 

論述とは?

あるテーマが与えられたとき、そのテーマに対する考え方の
事例を要約して紹介し、それに対して、自分の考え方を説明し、
順序立てて筋道を論理的に立てていき、最後に結論を述べる。
論述では自分の意見の比重が重くなる。

detail.chiebukuro.yahoo.co.jp

 

つまりは,自分の意見を論理的に述べることですね.

 

論述で示すべき項目

以下の順番で示していけばいいと思います。

  1. 自分の意見
  2. 問題を理解したこと
  3. 問題に関する背景知識を持ってるか
  4. 問題に回答するために事実や理論などを論理的に関連付けること
  5. 結論

 

http://www.ne.jp/asahi/socialpower/yimai/howto/ronjyutu/ronjyutu.html

 

さて、自分のレポートを書いていきますか...。

 

研究者になるために必要なスキル

最近,活躍中の研究者の方々と話す機会が頻繁にあってそこで聞いた話をまとめておきます.

研究者という仕事について

  • 仕事内容は研究!

当たり前だけど,研究者の仕事は研究をすること.業績を残すためや自分の興味のために研究を進めている.研究以外では,所属する機関にもよるが,学生の指導や授業がある.私立大学だと授業数や配属学生数が多くてなかなか研究に費やす時間が取れないことも.

理学系研究者の多くは研究所で研究するよりも家で仕事をし,週1くらいでしか研究所には来ないらしい.工学系研究者の多くは基本的に研究所に来て仕事するらしい.大学に所属しているとなかなか無理そうだけど.

  • 昇進にかかわるのはやっぱり業績!

若手研究者のうちは基本的には任期付きで雇われることになる.任期はだいたい3年ほど.業績を残すことで昇進できるみたい.

  • 研究者とは中小企業の社長のようなもの!

予算獲得(営業)・管理,開発,基礎研究,教育,これらのことを基本的に一人ですることになるので,中小企業の社長のように広くできるようにならなければならない.

研究者になるためのスキル(素質)

  • レールの敷かれた人生を避けること

修士を修了後,就職するか博士課程に進学するかの選択の際,このまま周りと同じように就職してもいいのかと疑問を持ったそう.就職したらある程度は昇進して,ある程度は稼げそうだけど,つまらないなと感じたらしい.修士まで出て就く仕事内容がSEだとなんのために修士まで出たのかわからない.もっと知的なことをやりたいと思った.あと,SEは人がやるべき仕事なのか(将来的に機械がやるようになるだろう)とも言ってました.

  • 鈍感力

これは,とても大事だと言っていました.これは,研究者になるまでと研究者になってからで必要と言っていました.まず,研究者になるまでは,周りよりも学生の期間が長くなってしまうので,就職した組が昇進していくなかで自分は学生のままで何をやってるんだろうなって感じてしまいます.そこで,どれだけ周りを気にせず鈍感であれるかが精神的な強みになるよう.これまで,博士課程の途中で挫折してしまった人は何人もいるようです.

次に,研究者になってから.2つあります.1つ目はいざ研究で食べていこうとしたときに,研究内容で煮詰まってしまったとき,どれだけ煮詰まっているという状況を鈍感さで乗り切るかだそう.煮詰まっていることに対して敏感になりすぎると精神的にしんどくなるようです.煮詰まっているのに煮詰まっていることに気付かないくらい鈍感になれと言っていました.2つ目は,論文の査読についてです.トップカンファレンスに論文投稿をすると(辛辣な)ありがたい意見を頂くそう.英語が稚拙である,から始まり,A4用紙4枚分ぐらいの査読回答が返ってきます.その時に適度に受け止めることができるかが大事だそうです.あまり落ち込みすぎてはダメ.

  • 文章力・発信力

いくら研究ができても発表できなければ研究しなかったことと同義.発表の形式は基本的には論文,学会です.その時にいかに上手に文章にできるか?いかに上手に発信できるか?が大事と言ってました.

まとめ

研究者とのお話の中で聞いた話や感じたことをここまで書きました.

  • 研究者は自由な働き方ができる
  • 研究者は中小企業の社長のようなもの
  • 研究者に必要な資質は,鈍感力と発信力

OpenAI Gymの導入でOS Error: [Errno 1]が出てしまった

OpenAI Gym

以前から存在は知っていて使ってみたいなと思っていました。今回、輪講で出てきたこともあり輪講内容の理解を深めるためや今後の強化学習のアルゴリズムの勉強のためにもここで導入しようと踏み切りました!

しかし、導入しただけではここには書きません。途中でハマってしまいました。

基礎的なところかもですけど、Mac初心者にとって解決に時間かかる問題でした。

その途中で出たエラーと解決方法についてここに残しておきます。

導入までの流れは公式を見てください!とっても簡単そうです。多分ほとんどの人にとっては簡単。

PCスペック

f:id:kerneltyu:20170418123915p:plain

エラー 

Orion:gym kerneltyu$ pip install -e .

Obtaining file:///Users/kerneltyu/gym

Collecting numpy>=1.10.4 (from gym==0.8.1)

  Using cached numpy-1.12.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl

Collecting requests>=2.0 (from gym==0.8.1)

  Using cached requests-2.13.0-py2.py3-none-any.whl

Requirement already satisfied: six in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from gym==0.8.1)

Collecting pyglet>=1.2.0 (from gym==0.8.1)

  Using cached pyglet-1.2.4-py2-none-any.whl

Installing collected packages: numpy, requests, pyglet, gym

  Found existing installation: numpy 1.8.0rc1

    DEPRECATION: Uninstalling a distutils installed project (numpy) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.

    Uninstalling numpy-1.8.0rc1:

Exception:

Traceback (most recent call last):

  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/basecommand.py", line 215, in main

    status = self.run(options, args)

  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/commands/install.py", line 342, in run

    prefix=options.prefix_path,

  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_set.py", line 778, in install

    requirement.uninstall(auto_confirm=True)

  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 754, in uninstall

    paths_to_remove.remove(auto_confirm)

  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_uninstall.py", line 115, in remove

    renames(path, new_path)

  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/utils/__init__.py", line 267, in renames

    shutil.move(old, new)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 302, in move

    copy2(src, real_dst)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2

    copystat(src, dst)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat

    os.chflags(dst, st.st_flags)

OSError: [Errno 1] Operation not permitted: '/var/folders/81/gnsty4rn7cl0v5pvwt2xnj1c0000gn/T/pip-4A2FSu-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8.0rc1-py2.7.egg-info'

 

結構書かれてますが、要はあなたがnumpy-1.8.0rc1をアンインストールする操作は許可されてませんよ〜ことですね。

なので単純にsudoつけてやりました。

 

Orion:gym kerneltyu$ sudo pip install -e .

The directory '/Users/kerneltyu/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

The directory '/Users/kerneltyu/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

Obtaining file:///Users/kerneltyu/gym

Collecting numpy>=1.10.4 (from gym==0.8.1)

  Downloading numpy-1.12.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (4.4MB)

    100% |████████████████████████████████| 4.4MB 259kB/s 

Collecting requests>=2.0 (from gym==0.8.1)

  Downloading requests-2.13.0-py2.py3-none-any.whl (584kB)

    100% |████████████████████████████████| 593kB 918kB/s 

Requirement already satisfied: six in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from gym==0.8.1)

Collecting pyglet>=1.2.0 (from gym==0.8.1)

  Downloading pyglet-1.2.4-py2-none-any.whl (964kB)

    100% |████████████████████████████████| 972kB 754kB/s 

Installing collected packages: numpy, requests, pyglet, gym

  Found existing installation: numpy 1.8.0rc1

    DEPRECATION: Uninstalling a distutils installed project (numpy) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.

    Uninstalling numpy-1.8.0rc1:

Exception:

Traceback (most recent call last):

  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/basecommand.py", line 215, in main

    status = self.run(options, args)

  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/commands/install.py", line 342, in run

    prefix=options.prefix_path,

  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_set.py", line 778, in install

    requirement.uninstall(auto_confirm=True)

  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 754, in uninstall

    paths_to_remove.remove(auto_confirm)

  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_uninstall.py", line 115, in remove

    renames(path, new_path)

  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/utils/__init__.py", line 267, in renames

    shutil.move(old, new)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 302, in move

    copy2(src, real_dst)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2

    copystat(src, dst)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat

    os.chflags(dst, st.st_flags)

OSError: [Errno 1] Operation not permitted: '/tmp/pip-Phs4aa-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8.0rc1-py2.7.egg-info'

 

ダメじゃん...

そこで OSError: [Errno 1] のエラー解決しているページを探しました。そこで見つけたTensorflowの導入でハマって解決している記事を参考にしました。

pikurusux.hatenablog.com

解決策

この記事によると"--ignore-installed program name"のオプションが重要。僕の場合はnumpyだったので"--ignore-installed numpy"のオプションを付与して

"sudo pip install -e . --upgrade --ignore-installed numpy"を実行しました。

 

Orion:gym kerneltyu$ sudo pip install -e . --upgrade --ignore-installed numpy

The directory '/Users/kerneltyu/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

The directory '/Users/kerneltyu/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

Obtaining file:///Users/kerneltyu/gym

Collecting numpy

  Downloading numpy-1.12.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (4.4MB)

    100% |████████████████████████████████| 4.4MB 249kB/s 

Collecting requests>=2.0 (from gym==0.8.1)

  Downloading requests-2.13.0-py2.py3-none-any.whl (584kB)

    100% |████████████████████████████████| 593kB 809kB/s 

Collecting six (from gym==0.8.1)

  Downloading six-1.10.0-py2.py3-none-any.whl

Collecting pyglet>=1.2.0 (from gym==0.8.1)

  Downloading pyglet-1.2.4-py2-none-any.whl (964kB)

    100% |████████████████████████████████| 972kB 762kB/s 

Installing collected packages: numpy, requests, six, pyglet, gym

  Running setup.py develop for gym

Successfully installed gym numpy-1.12.1 pyglet-1.2.4 requests-2.13.0 six-1.10.0

 

上手くいきました。

ハマった時に参考にしていください 

 

功利主義と義務主義の授業で考えたこと

今日,工学倫理の授業で考えていたことを残します.

 

キーワード:

正義,価値観,ルールの重さ

 

授業の内容

功利主義と義務主義について,

功利主義は,最大多数の最大幸福を求める立場で,一方で義務主義は,果たすべき義務があるとする立場である.

 

講義中,講師がカントの思考実験と奴隷制に関して質問をした.

カントの思考実験は,殺人鬼に追いかけられた友人を家に匿い,友人から「この家に隠れていることを殺人鬼に明かさないでくれ.」と言われた状況において,殺人鬼に友人が家に隠れているかどうか聞かれた場合,嘘をつくか,つかないかという質問であった.

これに参加した学生は全員”嘘をつく(友人は家にいない)”を選択した.

理由としては,友人が家にいると明かすと殺人鬼が家に押し入って友人を殺してしまうからであった.

嘘をつく派は嘘をついた結果,友人が助かるという善い結果を求めており功利主義の立場である.嘘をつかない派は嘘をついてはいけないという社会一般のルールを順守しているので義務主義の立場である.

 

奴隷制の質問は,ある国で国民の1割を奴隷にすると国際競争で勝ち抜け,残り9割の国民が幸せになれるという前提で,国民の1割を奴隷にするかどうかという質問であった.

2人は奴隷制に賛成で,その他の学生(30人程度)は反対であった.

賛成は,国民1割を犠牲にしてでも残りの9割の幸福にすべきという意見で,反対は,人権を無視される奴隷は良くないという意見であった.

ここで,賛成派は残り9割の幸福を求めており功利主義である.反対派は奴隷を作ってはならないというルールを順守しており義務主義である.

この2つの質問においてどちらの立場でも正しくまた間違っている.このことから功利主義と義務主義のジレンマがあることがわかる.工学倫理は人の価値観を扱う分野である.

 

さて,この時考えていたことをざっと書きます.

・人それぞれの正義で良し悪しを判断している.

・人は正義という判断基準を持っていて,正義っていうのは過去の経験から構築されていくんだろうなってのも漠然と思いました.

・今回については,おそらく破るルールの重要さがポイントになったんじゃないかと思います.嘘をつくと奴隷制を作るじゃ破るルールの重たさが違いますよね.そういう観点だと人は自分の中でルールの重要さをまとめたみたいな表を持っているのかも.そして,ルールを破った結果の期待効用がルールの重要さを上回ればそれを実行するみたいな.

 

 書いてみてわかったけど,自分の考えをまとめて文章を作るのって難しい...

これから練習していきます.

 

初投稿

調べたことのまとめなど,主に自分の記憶の補助に使っていきます.

Remove all ads