2018年版pytorchによるcycleGANの実装をWindowsで動かした
こんばんは、先日長男が卒園式直前に熱を出し、式当日までハラハラしてましたが、卒園式には無事出席できました。@kjunichiです。
背景
去年書いた記事の
が今年になってけっこう参照されてるが、その直後にGPUを有効したモノをいれる 方法が変更になっていることを知ったので、2018年3月現在のインストール方法を書くことに
WindowsでGPUを有効にしたPyTorchを入れるには
下準備
CUDAとcuDNNを入れる。 CUDAのバージョンはWindows向けのPyTorchでは最新の9.1系は対応していないようなので、ダウンロードページの Legacy Releaseボタンをクリックして9.0系を入れ、cuDNNは最新版のCUDA9.0系を入れた。 8.0系も
によるとサポートされている模様
と、まさにこの記事を書くさいに確認したら、CUDA8.0系は 直前までは明示的に「cuda80」の指定が必要だったが、 直近の最新版は、この指定が不要で、デフォルトがCUDA8.0向けのPyTorchがインストールされる ようになっていたw。
conda install -c peterjc123 pytorch cuda90
ちなみに、去年自分がPyTorchを入れた際はCUDAは8.0系の当時最新版を入れて実施していた。
以降の手順
以降は
で多分大丈夫そう。
関連記事
- Windows(MSVC)でmrubyからGPU対応のTensorflowを動かせた
- Tensorflowのclassify_image.pyにElectronでGUIを被せてみた
- Tensorflowのclassify_image.pyをWebアプリ化した
- Raspberry Pi3でTensorflowをビルドして動かした
11年前の記事
8年前の記事
1年前の記事
Raspberry Pi 3が届いた!
おはようございます。花粉症が今年もひどく、休日の朝はゴロゴロしていたのですが、電車の ペーパークラフトに最近また凝りだした次男に、新しい車両を印刷してくれ!とたたき起こされる パターンの@kjunichiです。
背景
初代Raspberry Piを持っており、会社の社内勉強会で、iOSで課金されずにテザリングするシステムを Rasbperry Piで動かすデモをやったりと、そこそこ活躍してましたが、 SDカードのメモリがよく飛ぶのと、圧倒的な速度の遅さで最近は使わなくなっていた。
子供たちも少し成長し、当初部品の誤飲等が心配で出来なかった電子工作ができるようになり、ブレッドボードがついている Rasbperry Pi用のキットを買ったら、端子が初代Raspbeery Piと現行のPi 3では異なっていた。イマドキ初心者が便利に なんちゃってIoTを楽しむにはPi 3が便利そうなことを体験した。
Raspberry Pi 3の購入費の捻出
ポイントサイトでカードを作るとポイントがもらえるらしいことを知った。 が、よくよく調べたら、作ったカードで5000円ほど利用しないといけなかった。
この基準を達成するのに、ちょうどRaspberry Pi 3がちょうどよかった。
今回利用したのがECナビさんでもう終了してしまいましたが、アメックスのキャンペーンでした。 このカードも年会費が入会年度無料で次年度以降もカードの利用があれば費用が掛からないという、 維持費の心配が少ないお得なカードでした。
自分の作ったカードのキャンペーンはすでに終了していますが、ほかにも、 お得なカードがたくさんあるようでした。このテクニックで奥さんに怒られないガジェットの購入が 出来るかも!?
Rapberry Pi 3がやって来た
Raspberry Pi 3本体は日本製が評判良かったので、日本製のものを探して購入した。
raspberry pi 3を遂に手に入れたので、あれこれ試してる。今日はWebカメラを繋いでchromiumが普通にWebRTCでカメラの画像を使える事が分かった。mruby-webcamも動いた。また、VS Codeもバイナリ配ってるサイトがあり、使えた。
— kjunichi (@kjunichi) 2018年3月6日
raspberry pi 3が来たからと、期待してたMathematicaはちょっと期待がデカすぎたw。今日はWebGLを試したが、どうも実用的ではなさそうな雰囲気を感じてる。
— kjunichi (@kjunichi) 2018年3月7日
関連記事
- Raspberry Piが届いた!
- 2018年春版Raspberry Pi 3の3.5mmジャックからAlexaを出した
- 陰関数の仮想3D空間へのプロットあるいは、ラズパイ版マインクラフト(mcpi)にたけのこの里を出す
- Raspberry Piの温度をgRPCを使ってElectronで作ったデスクトップマスコットに表示させた
- Juliaでゼータ関数を直接jupyterにプロットしたり、マインクラフト(MCPI)にプロットした
11年前の記事
8年前の記事
1年前の記事
mruby-mrmagickをGraphicsMagickに対応させた
こんにちは、今週も奥さんが出張です。しかも、長男がまた発熱というおまけつきです。不幸中の幸いというか、長男はインフルは陰性でした。@kjunichiです。
背景
Ubuntu 16.04LTSで素の状態ではGraphicsMagickが使われることを先日の記事で学んだ。
CIはTravis-CIでLinux上で回してるからてっきりGraphicsMagickでも動くものと思い込んでいた。 しかし、実際には先日のUbuntu 16.04LTSのGraphicsMagick環境ではmruby-mrmagickは動かなかった。。
GraphicsMagickに対応する為に必要だった2点
- InitializeMagickを初期化時にちゃんと呼ぶ
- 有無の分からないEXIF情報取得にImage#profileを使わない
InitializeMagickを初期化時にちゃんと呼ぶ
これまでのコードは、もう書いてからずいぶん時間が経過しており、記憶に内が、 なんとなく、レイトバインディングな考えで、必要になるまで余計なことをやらない方針だったと思う。
その為、ImageMgaickの初期化も、必要な個所まで引き延ばそうとした作り出ったし、 必要なところ(動かすと落ちる)の直前で初期化を実施するつくりにしていた模様。
今回GraphicsMagickに対応するに当たり、これをmrbgemの初期化時に行うように変更した。
有無の分からないEXIF情報取得にImage#profileを使わない
GraphicsMagickのMagick++ APIではImage#profileをJPEGでもEXIFが無い画像に対して行うと、落ちる。
'Magick::ErrorCoder' what(): Magick: No APP1 data is available () reported by coders/meta.c:2369 (WriteMETAImage)
当初、この箇所が分からず、回転操作関連のテストで落ちるだけしか分からなかったが、 なんとか、再現コードまで辿り着け、問題解決につながった。
再現コード
#include <iostream> #include <Magick++.h> using namespace std; using namespace Magick; int main(int argc, char **argv) { InitializeMagick(*argv); Image img; img.read("output.png"); Blob blob = img.profile("EXIF"); if (blob.data() == NULL) { cout << "exif == NULL"<<endl; static unsigned char dexifData[] = { 69, 120, 105, 102, 0, 0, 77, 77, 0, 42, 0, 0, 0, 8, 0, 9, 1, 15, 0, 2, 0}; Blob exifdata(dexifData, 3); img.profile("exif", exifdata); } return 0; }
ビルド
g++ -o test05 test05.cpp `GraphicsMagick++-config --cppflags --libs --ldflags` convert -size "640x480" -background "#C0C0C0" -fill "#FFFF00" caption:"ABC" output.jpg ./test05
幸い、EXIFのカメラの回転情報といったより、具体的な項目を指定するImage#orientationメソッドではGraphicsMagickでも落ちずに0が返される 動きだったので、こちらを使う事で対応出来た。
- Blob blob = img->profile("exif"); - if (blob.data() == NULL) { - // we generate dummy exif data. + if(img->orientation() == 0) { Blob exifdata(dexifData, dexifDataLength); img->profile("exif", exifdata); - // make own exif data. }
関連記事
- mrubyで簡単に回転画像が生成出来るコマンドを作ろうとしている
- mruby-mrmagickをWindowsでもv7系のImageMagickに対応させた
- mruby-mrmagickにMrmagick#formatsを追加した