環境 PC: MacBook Air CPU: 1.4 GHz Intel Core i5 メモリ: 4GB ふつうのMacBook Airでやったのですが、学習遅いし、メモリ不足で落ちるしでやっぱり辛かったです。 おおまかな流れ 各女優の画像を収集する。 dlibで顔画像を切り取って96×96の大きさにリサイズする。 1人につき1000枚の画像になるようデータ拡張する。 データをnumpyファイルに変換する。 chainerで顔画像を学習する。 学習したモデルから任意の画像の予測をする。 1. 画像を収集する ここは詳しくは書けないので以下の記事を参考にしてください。 Python: BeautifulSoup4 を使って Web サイトをスクレイピングする PythonとBeautiful Soupでスクレイピング 取得した画像は女優ごとにディレクトリを分けて保存します。 ./fold
こんにちは、えんせきです。 先日、モデルのパラメータを自分でも好き放題変えられるようになった。(転移学習的な意味で) ensekitt.hatenablog.com 今まではExtensionsで自動的に保存されるやつを使っていたけど、他のタイミングでも保存するのでモデルの保存の仕方をまとめておく。 つまりなにしたの? Chainer(3.2.0時点)で学習済のモデルを保存して、保存したモデルを読み込む。 追記(2017年12月17日) 私はいつも同じマシンで動かしているので、ModelやOptimizerをGPUのまま保存していますが、他で使うならCPUに変換して保存したほうが良い。 model.to_cpu() # とか optimizer.to_cpu() を入れればできる。 読み込むときは逆に model.to_gpu(デバイス番号) # とか optimizer.to_gpu(デ
皆さんこんにちは お元気ですか。私は元気です。 前回はChainerの紹介をしました。nonbiri-tereka.hatenablog.com 本日はこのChainerを使って、CIFAR-10の分類を行ってみようと思います。 アーキテクチャとして利用するのはConvolutional Neural Networkを利用します。 What is CIFAR-10 CIFAR-10 and CIFAR-100 datasetsにあるデータセットです。32x32pixelのカラー画像を10のクラスに分類する問題が含まれています。 画像の大きさはTraining画像が50000枚、Test画像が10000枚です。 研究とかのベンチマークでお世話になっている人も多いと思いますが・・・ 以下の図は本家に掲載されているサンプル画像です。 データセットの読み込み CIFAR-10ではPythonでの読
Chainerでデータセットを作る方法についていくつか紹介したいと思います。なお、執筆時点のversionは3.0.0です。 シンプルなデータセット 画像を扱うデータセット ImageDataset LabeledImageDataset データセットに処理を加える 独自のデータセット データセットの分割 データセットへのアクセス シンプルなデータセット 基本的には、len()で要素数を取得できたり、[1:2]のようにスライスで要素を取得できれば、データセットとして扱うことができます。 ということで、最もシンプルなデータセットはNumpyの配列です。 dataset = numpy.array([1, 2, 3], dtype=numpy.float32) また、TupleやDictを扱うTupleDataset()やDictDataset()が用意されています。 ただ、メモリに収まらない
OpenCV3.0からやっと入ったラべリング処理についてです. ラべリング処理とは,画素の連結成分を見つけて,連結成分ごとに一意の番号を付与する処理です. ラベリングのわかりやすい説明はラベリング処理アルゴリズム 画像処理ソリューションを参照してください。 OpenCVのラべリング関数 今回実装されたラべリング処理は2種類あります. //ラベリング(簡易版) int cv::connectedComponents(InputArray image, OutputArray labels, int connectivity = 8, int ltype = CV_32S) //ラベリング(詳細版) int cv::connectedComponentsWithStats(InputArray image, OutputArray labels, OutputArray stats, Outp
3行で 手軽にやるならglob.glob サブディレクトリまで走査するなら、python 3.4以前ならos.walk、python 3.5以降ならglob.glob python 3.4以降で、その後のファイル操作まで考えるなら、pathlibがお勧め 前置き 大量のファイルを一括にリネームする必要があったので、調べたことを忘備録がわりに書いておきます。 あるディレクトリに入っているファイルの一覧を取得します。応用として、特定の条件にマッチするファイルのみ抽出したり、サブディレクトリ内部のファイルまで再帰的に取得することもできます。なお、この例では以下のようなディレクトリ構成になっているとします。 /test_dir └── dir_A ├── hoge.txt ├── huga.txt ├── nyaaan.JPG └── dir_B └── piyo.txt
データの次元圧縮手法について調べている時に、後輩が次元圧縮 + クラスタリングを同時に学習するディープラーニングの手法「Deep Embedded Clustering」を調べて教えてくれたのでせっかくだからChainerで実装してみようというのがこの記事です。 実装したコードはGithubで公開しています。 https://github.com/ymym3412/DeepEmbeddedClustering Deep Embedded Clusteringとは Deep Embedded Clusteringは「Unsupervised Deep Embedding for Clustering Analysis」という論文の中で提案されているクラスタリングの手法です。 次元圧縮やクラスタリングの手法は他にも以下のようなものがあります。 k-means、混合ガウスモデル(GMM) 高速に
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く