niszetの日記

アナログCMOS系雑用エンジニアが頑張る備忘録系日記

どうやってもubuntu+cudaが出来ないので諦めてwindowsに戻ってきた

まぁ流石にね…。

ubuntu16.04LTSはドライバの関係で、17.10, 18.04LTSともにうまくcudaが入らず(フリーズする)のでもう諦めてwindowsに帰ってきました。さようならubuntu…。

windows入れなおすときにHDD周りでちょっと戸惑ったのでメモを残す。

新しく買ったHDDが認識しない/WindowsでHDDを認識・フォーマットする方法 - ぼくんちのTV 別館

Windowsのインストールが出来ない場合の対処方法2 (UEFI/MBRの違い) - ぼくんちのTV 別館

なんだかんだでwindowsは楽で良いですわ…。非IT系のおじさんにはLinuxは難しすぎるのじゃ…。 まぁ、いずれ頑張りましょうね…。

以下、次回また忘れそうなのでメモ。

windowsを入れた後、R、RStudioを導入し、git for windowsも入れておく。この辺りはデフォルトの設定で問題ないと思う。

Python環境、windows版の場合は、condaで入れた方が良い気がします。ここから3.6の方を。

www.anaconda.com

これもデフォルトの指示で良いはず。終わったらAnacondaのconsoleでconda install kerasとconda update --allしておく。

Cudaはで付属のドライバインストールで入ったので良いのだが、keras使用時にCuDnnが必要になるので、NVIDIAでユーザの登録をして、DLしてくる。現時点ではTF1.8だと思うので、Cuda9.0のものを使うと良いと思う。

developer.nvidia.com

あとは下記に従って、DLしてきたファイルを解凍して所定の場所に置く。

docs.nvidia.com

この上で、R側でkerasパッケージを導入、gpu使用する版のTFを導入、Pythonのパッケージ管理はcondaと指定をする。

これでKeras/R/Windowsが実行できる。試しにRStudioのkerasを使用したMNISTをやってみたが、ちゃんと動作した。マシンスペックによるが数分で終わるかな

keras.rstudio.com

学習が進むにつれてplotが更新されるのは面白いですね。何もしていないのに何かをしている気分になれる…。

ということで、とりあえず動かすところまでは簡単に出来ました。一体この半年は何だったんでしょうね。

これも読まなくては…(英語版(python版、 R版で計2冊)+日本語版を積んでます)

book.mynavi.jp

まだまだ分からんことばかりなので楽しいですね。色々できるようになりたい…。

Enjoy!!

心理学も勉強していく…

手を広げ過ぎではないかな?

TokyoR 70、難しかったけど楽しかった。
さて、今月末にはベイズWSなるイベントがあります。

connpass.com

こちら、広島ベイズ塾のイベントで、Hijiyama R Finalでお会いした方々が勢ぞろいな感じになっています。

で、何も予習せずに行くのも微妙なので、犬4匹本のほかに、心理学系の基礎of基礎は知っておこうと思いまして、放送大学の心理学概論のテキストを読み始めました。

やはり自分の専門から全然離れたところにある内容は、基礎的な内容を読み通すだけでも結構大変ですね…。これは読めるだけ読む方向で頑張る(理解出来たり全部読み通せるならなお良い)ということで、努力目標としていますが…。

それよりなにより、最近の働き過ぎの結果で体力が枯渇しているので、この時期にはちゃんと整えていたいです…

今から楽しみです。

第70回R勉強会(TokyoR 70)に行ってきました。

今回はベイズ

昨日はTokyoR 70に参加してきました。今回も資料はatndに公開されているので、そちらを。

atnd.org

Togetterも。相変わらず仕事が早すぎるっす…。

togetter.com

感想。

今回はベイズ回ということで、初心者セッションからベイズベイズでした。Rの話はそういえばいつもよりも少なかったですね。まぁ、Rでベイズやるとなると実質stan一択なのでそうなるよね(greta...いや、なんでもないです)

いつもよりもかなり頭を使った気がします。今まで可視化、前処理を結構頑張って修得してきたつもりなので、そろそろ統計的な処理やモデリングに深く足を突っ込みたかったので、非常に勉強になりました。

しかし、私の場合はまずはlmからちゃんとした理解が必要ですけど…。

次回、英語縛り回ということで、今から参加するか悩み中です。というのも、今後参加するならば発表するときのみ、と決めていたので。
大物ゲストの話もあるし…どうなるか?(混みそう)

最後になりましたが発表者の皆さま、運営の皆さま、お疲れ様でした。そしてありがとうございました。 運営さんは特に今回規模的にも大変だったと思いますが、混乱もなく、スムーズな運営でしたね…流石っす…。

入門、LT、応用、どれも発表素晴らしかった。 LTもベイズ的に必要があり、ちゃんとモデルを作ってそれぞれ問題にアプローチしていて、やはり実際に手を動かしている方々の話は参考になる…。

ベイズは扱う対象の問題が複雑になりがち(そもそも簡単なモデルで解決するなら、ベイズ的な方法をとらないかも)なので、良いデータセットみたいなもので練習したいですねぇ…。

まずはアヒル本と犬4匹本から頑張ろう…

Enjoy!

ベイズ統計にも力を入れていこう、と…

犬4匹本を読んでいます。

犬四匹本とはこちらのことを言います。

www.kyoritsu-pub.co.jp

とりあえずは5章まで読みました。6章途中。

ベイズ本は他にも何冊かあるのですが、やはり数式が多めになってくると厳しい感じに。手を動かして理解していくしかないなぁという感じで。

今日はTokyoR 70回目でベイズ回となっています。

atnd.org

色々吸収できるよう、頑張るぞぃ

Pythonとか機械学習にも手を出していこう、と。

一体、何周遅れなんでしょ…?

そんなわけでscikit-learnとtensorflowによる実践機械学習を読み始めたわけです。

www.oreilly.co.jp

良い感じです。コードは全文は載ってないので、公開されているnotebookを実行したり読んだりする必要がありますが。 現在5章まで読み進めましたが、段々難しくなってきましたね。

これを読んで手を動かした後、

book.mynavi.jp

こちらに行こうかな、と。これの英語版のPyhon版とR版がおうちで仲良くおねんねしていますね。

そんなわけでPython一番の難所、環境構築にトライです。つらい…Anacondaで良いよね・・・。 選択肢は多くていいけど、初心者から始めて上級者までちゃんと道がつながっていればいいんですけどね…どんな分野も初心者向けは色々あれど、そこから中級者の道を歩んで上級者までいくための、道筋を示すような本ってあまりないんですよねぇ…(中級以上から出来ることが増えるので、テーマが分散してしまう(あるいは内容が膨大になってしまう)ため、仕方がないのは分かるんですけどね)

ま、ぼちぼちやっていきましょう。

6/3 追記

読むのは何とかなるのですが、公開されているJupyterNotebookを実行することが大事です。ですが、Python使わずにしばらくきたので完全に忘れていますね。 結構負荷も大きいので、それなりのマシンで実行しましょう。とりあえず写経頑張ります。

Cuda 9.2 が入れられない…

つらい…

こちらの記事を参考に、Ubuntu18.04 LTS にCuda 9.2を入れようと思ったわけですが

www.python36.com

どうもコレを踏んだっぽい。

bugs.launchpad.net

どうにか無理やりにでも回避できないものか…。

とりあえず一旦諦める。

追記

って書いたそばから見つけた。。

Ubuntu 18.04へのCUDAインストール方法

やっぱりforceするしかないんですね。パッケージの依存関係が壊れてしまったので修復せねば。やはり公式バイナリ待ちが良さそうです。

追記2

この方法、一旦forceしてインストール完了しないとアンインストールも出来ない。うかつだった…

(R) 階層化Rmdとループとタブの話(階層化Rmdの3回目の話)

階層化するモチベーションはどこにあるのかということで。

さて、RMarkdownの階層化の話の続きです。

RMarkdown、基本的には1つのファイルに収めておいた方があっちこっち見に行かなくて良い分、管理は楽になります。

しかし、コード1000行を超えてくるあたり1で厳しさを感じるようになります。
特に、同じような図を作成するようなケースではコードのコピペが横行しがち2で、ちょっとしたフォーマットをいじるときにも数十か所を頑張って修正するという苦行が発生したりします。

よく言われるように、同じコードが3回出てきたらまとめましょう。Rのコードなら関数、関数のまとまりならパッケージ、RMarkdownのチャンクなら階層化したRMarkdown、といった感じですね。

さて、実際にやってみます。前回からちょっと変えています。まずはiris_child.Rmdの方。

---
title: "plot iris in RMarkdown with params"
author: "niszet"
date:  "`r Sys.Date()`"
output: html_document
params:
  x: "Sepal.Length"
---

/```{r setup, include=FALSE}
library(tidyverse)
library(ggridges)
/```

## plot of `r params$x`
/```{r echo=FALSE, message=FALSE}
iris %>% ggplot()+geom_density_ridges(
  aes_string(x=params$x,y="Species", fill= "Species", 
             point_color="Species", point_fill="Species"),
  position="raincloud", jittered_points=TRUE, alpha=0.3, scale=0.4)+
  theme_bw()
/```

次に親の方ですが、iris_parent.Rmdというファイル名で

---
title: "plot iris in hierarchical RMarkdown with params"
author: "niszet"
date:  "`r Sys.Date()`"
output: html_document
---

/```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
options(knitr.duplicate.label = 'allow')
/```

# Plots of iris {.tabset}
/```{r echo=FALSE, message=FALSE}
envir <- new.env(parent = parent.frame())
envir$params <- NULL
out <- NULL
xs <- c("Sepal.Length", "Petal.Length", "Sepal.Width", "Petal.Width")
for (xx in xs){
  envir$params$x <- xx
  out <- c(out, knitr::knit_child("iris_child.Rmd", envir=envir, quiet=TRUE))
}

knitr::asis_output(out)

/```

のようにしてみます。前回との違いは、呼び出し側でforのループがあります。で、envir$params$x"Sepal.Length", "Petal.Length", "Sepal.Width", "Petal.Width"を順に送り込んでいます。
また、親の方にh1のレベルでPlots of irisと書いて、tabsetの指定をしています。これは

rmarkdown.rstudio.com

にあるように、#のレベルで見て下位のレベルのセクションをタブ化してくれるというものです。これは実物を見た方がわかりやすい。

そんなわけで、親RmdでKnitしますと、

f:id:niszet:20180528132432p:plain

とか、

f:id:niszet:20180528132452p:plain

こんな感じに。

タブを選択して、それぞれの図が表示されているのがわかるでしょうか?このタブはrmarkdownパッケージが入っていないとダメらしいですが、まぁRMarkdown書いている人は多分入ってるよね…。

これにtoctoc_floatthemeなどを設定するとすごい簡単にシャレオツレポートの完成です。逆に言えば、そういう見た目に騙されてはいけないよ…ということですね。

ちなみに、これらのキャプチャ画像は手でやってしまっているので、再現可能性もへったくれもないです。すみません…。webshot使えばいいんですけどね…ブログなので許してください、ということで。

Enjoy!!


  1. 一例。内容や状況によって増減します。念のため。

  2. niszetの体験に基づくアレ