Hatena::ブログ(Diary)

shi3zの長文日記 RSSフィード Twitter

2018-01-12

Kerasコードのモバイル開発にPlaidMLは必携! ついにconv2d_transposeにも対応 09:35 Add Startakus4649

 去年の暮からメインマシンをMacBookPro(タッチバーなし)に変更した。

 

 理由は、もともと使っていたMacBookAirがいよいよ4年くらい経ってポンコツ気味になってきたので、MBAは会社常駐マシンに格落ちさせて新規にMBP13インチを買ったのだ。


 今の世代のMBPの使用感はあまりよくない。ただ、恐れていたキーボードに関しては、むしろ昔のキーボードよりも良くなってると感じる。浅いキーストロークに最初は戸惑うが、コレに慣れてしまうとむしろフルストロークのキーボードは指の動きを無駄に長くしていたことに気づく。浅いほうが疲れにくい気がする。


 使用感がよくないのはUSB-Cのせいだ。充電も外部出力もUSB-Cに統一されてしまい、MacBookならどれも何も考えずに使えたSDカードスロットがなくなってしまった。iPhoneの充電も一度アダプターを通さなきゃならないし、相変わらずAppleの美学は無駄を強いる。


 まあそうなんだけど、トータルではやはりMacBookはいい。それなりに薄いしそれなりに軽いしそれなりにパワフルだ。Retinaの解像度は必要ない気がするけど、全体的にバランスがいい。


 PC用のディスプレイが16:9とかはやはりおかしいと思う。明らかに使い勝手が悪いでしょ。3:2か4:3がいい。


 まあそれはともかく、仕事の手順としては、まずMBPでコードを書いて、軽いタスクを動かしたあと、1エポックくらい回してみて、それから据え置きのGPUマシンにログインして本格的な学習をさせる。このマシンが、データセンターに置けなくなってしまったので非常に困っている。まあ古いバージョンでだましだまし使うしかないが。


 ちなみに、データセンターにGeForceを置いて使う場合と、一年間Microsoft AzureのTeslaを使う場合とでは、コストがたかだか二倍くらいしか違わない。従って、Azureを使う場合はコストが10倍のTeslaを買う必要はないことはハッキリさせておきたい。どうせ一年後にはさらに新しい世代のTeslaが出るわけだし、慌ててTeslaを買う必要はない。買っても粗大ゴミになるだけである。ちなみに当社はAzureも販売している。


 閑話休題。


 この、ローカル(MBP)で1エポック回そうという時に、これまではCPUで仕方なく回していたが、PlaidML(https://github.com/plaidml/plaidml)を導入するとOpenCLでアクセラレートしてくれるので、MBPに搭載されているヘボヘボなIntel HD Graphicsでも学習が高速化される!!!もちろん、TITANXほどの速度は出ない(というかMBPのグラフィックチップはそれほど高速じゃない)けど、体感で3~5倍くらい速いので開発効率はすごく上がる。


 こりゃーすごい


 しかも懸案のconv2d_transposeとconv3d_transposeに対応してくれたので、PlaidMLでもGANが学習可能(なはず) https://github.com/plaidml/plaidml/commit/d4afce257aab1a6a8e46a0a890a535b292c07248


 すごい神対応! Issueだしてから一週間も経ってない。

 これでGANが動くはずだが、あとで試してみたいと思う。


 ついにNVIDIA帝国に対抗する反乱軍の準備が整ってきたようだ。

 AMDRadeonマシンでも試してみたい