読者です 読者をやめる 読者になる 読者になる

TadaoYamaokaの日記

山岡忠夫 Home で公開しているプログラムの開発ネタを中心に書いていきます。

リアルタイムにマンガの顔パーツ検出を行ってみた

以前に書いた以下の日記の内容を組み合わせて、リアルタイムにマンガの顔パーツ検出を行ってみました。 dlibでマンガの顔認識をやってみた DCNNによるマンガキャラクターの顔パーツ検出 Surfaceのカメラでリアルタイムに顔器官検出を行う リアルタイムにマン…

DCNNによるマンガキャラクターの顔パーツ検出(追試)

前回の日記では正則化など行わずにRMSpropを使用して学習を行ったが、初期値の変更や正則化やBatch Normalizationなどを行った場合にどうなるか試してみた。 初期値の変更 ChainerのConvolution2Dのパラメータの初期値は、デフォルトではHeの初期値で初期化…

DCNNによるマンガキャラクターの顔パーツ検出

以前の日記でdlibを使用してマンガのキャラクターの顔パーツ検出を行った。しかし、dlibの方法は、マンガキャラクターには有効ではなく、顔パーツを検出できなかった。そこで、DCNNを使用して顔パーツ検出(顔器官検出)ができるか試してみた。 dlibで実装され…

WindowsでChainerをGPUを使って動かす(更新)

GPUをGeForce GTX 1080に交換したので、CUDAを8.0にバージョンアップした。CUDA7.5でインストールしたChainerが動かなくなったため、CUDA 8.0に対応させるため、再インストールを行った。基本的に、CUDA7.5のときの手順と同じだが、環境変数INCLUDEの設定が…

cuDNNでAlphaGoのSL policy networkの順伝播を実装する

Chainerを使って学習したAlphaGoのSL policy networkのモデルを使用して、C++のプログラムからcuDNNを使用して順伝播を実装してみた。SL policy networkを囲碁のプログラムに組み込んで使おうとすると、PythonとChainerが必要になるのでは実行環境の敷居が高…

CaffeでSL policy networkを学習

前回の日記で定義した、AlphaGoのSL policy networkをCaffeで学習してみた。以前にChainerを使って学習した結果と速度、精度を比較するため、条件を合わせている。 インターネットから入手したプロの棋譜を使用 特徴はAlphaGoの論文のExtended Data Table 2…

ChainerのモデルをC++で読み込む

以前の日記でAlphaGoのSL policy networkをChainerで学習した結果をC++の囲碁プログラムで使用したいと考えている。 その際、C++からPythonを実行するのでは、オーバーヘッドが大きく、実行環境のハードルが上がりポータビリティが下がってしまう。 そこで、…

WindowsでcuDNNを使用して畳み込みを行う

前回の日記で書いた方法でChainerのコードを調べつつ、WindowsでcuDNNを使用して畳み込みを行うことができたので、方法を示しておく。 使用バージョン Windows 10 CUDA7.5 cuDNN v5 Visual Studio 2015 cuDNN v5を使用するには、CUDA7.5が必要になる。 CUDA7…

Chainerをデバッグする

WindowsでVisual C++で作成したC++のプログラムからDCNNを実行したいが、C++に対応したライブラリを動かすのに苦労している。 Caffeを試しているがビルドはできて、CPUでは実行できたが、GPUで実行すると謎の check failed: error == cudasuccess (8 vs. 0) …

SL policy networkの学習

前回の日記でChainerで作成したAlphaGoのSL policy networkをプロの棋譜を使って学習させてみた。棋譜は、以前と同様、インターネットの棋譜サイトから入手したプロの棋譜を使用した。まずは、学習がうまくいくか様子をみるため、特徴はAlphaGoの論文のExten…

Chainerで位置ごとに異なるバイアスを定義する

前回の日記で、AlphaGoのSL policy networkをChainerで定義した際に、layer13の位置ごとに異なるバイアスを、(19*19)次元のベクトルとして、Convolution2Dを1次元にreshapeした後、足し合わせていたが、ミニバッチにした場合うまくいかないことが分かった。V…

WindowsでChainerをGPUを使って動かす

WindowsでChainerをGPUを使って動かすことができたので、手順をメモっておきます。使用したソフトのバージョンは以下の通りです。 Windows 10 Home 64bit Python 3.5.1(Anaconda 4.0.0 64bit) CUDA 7.5 cuDNN v5 Chainer 1.8.2 使用したGPUは、Geforce GTX 7…

Chainerで3層パーセプトロンの誤差逆伝播を実装してみた

前回の記事で、numpyを使って行列演算で3層パーセプトロンを実装しましたが、同じことをChainerを使って実装してみます。 import numpy as np import chainer from chainer import Function, Variable, optimizers from chainer import Link, Chain import c…

WindowsでChainerを試す

音声データの特徴量の抽出を試行錯誤するよりも、 ディープラーニング使っちゃえばいいじゃねって 考え始めたので、ぼちぼちディープラーニングの勉強を始めました。 とりあえず、この本を読み始めました。 手を動かさないとモチベーションを保てないので、 …