You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
概要 chainerのmodel(Chainクラス)を入れ子にして使っていたら重みが更新されなかった. Chainクラスで重みの更新がされるのは self.init_scope()内に書いている linkオブジェクトだけだったことが判明し, with self.init_scope():以下に書くとちゃんと更新された. 状況 version chainer==3.0.0 やりたかったこと あるmodelAに layerNを追加して,新たに modelBを作成したかった. だめなコード 計算グラフを出力すると,ちゃんとmodelA -> layerN という風に接続されていたので,これでうまく接続されているものだと思っていた. が,実際に学習中に都度重みを出力してみると,modelA内の重み(l1, l2, l3の重み)が全く更新されていないことがわかった. # example/train_
すでにトレーニングされたモデルからWやbなどの重みを取得することで、より早く学習を進めることができる (fine-tuning)。 モデル自体が完全に同じ場合には当然使えるし、モデルの一部を修正して使用する場合にも、変更の必要がない層に関しては、あらかじめ学習済みのモデルから重みを借用するのが良い。例えば、分類先の画像種類が1000種類から10種類に切り替える場合などは、最終の全結合層のみ切り替える必要はあるが、それ以前の畳み込み層などは変更の必要性は少なく、その部分の重みを使用することができる。 計算時間短縮に結びつく背景には、以下のような点が挙げられる: - あらかじめ大量の計算資源を使用して収束した時点の結果を使用するため、それまでの計算時間を省略可能。特に、畳み込み層の第一層はガボールフィルタに近似するという研究も多く、あえてそこを新規で学習させる必要性はあまり感じられない - ま
実装 検証が終わっていないモデルの使用は気をつけてください cifar10の数値感覚 現時点で97%以上ではSoTAになると思います。僕が知っている限り、最高精度は96.69%です。そろそろcifar100か別のデータセットを評価の軸にするべきかもしれません。 最近の傾向 今年はResnetファミリーの年だったと思います。特徴的な点として、深さ=精度が終わった点です。googlenetなどは昔から主張していましたが、ある程度深いと、深さよりも幅を広くしたほうが精度が上がるということが、様々な論文の結果で今年は示されました。3月くらいから、Resnetの幅を広くしたほうが良いという結果は副次的にぞろぞろ出ていて、5月23日に出たWide Residual Netowrksで決定的になったような形だと思います。幅が大事といったことが、今年はっきりした点であるように思います。 論文を俯瞰してみる
Define by Run Define by Run Define and Run 具体例を見る 上記のコードのネットワークにおける動作 Define by Run 今回は、Chainerの特徴の1つであるDefine by Runについて、どんなものであるかを理解できるようにします。 Define by Run Define by Runでは、計算グラフ(ニューラルネットの構造)の構築をデータを流しながら行います。 Define and Run Define and Runでは、計算グラフを構築してから、そこにデータを流していきます。 これだけで違いが理解できるでしょうか? おそらく難しいかと思います。 上記の2つの違いを認識するのが目標です。 具体例を見る やはり、具体例を見たほうがつかみやすいかと思います。 Chainerの以下のコードを見てください。 どのようなネットワーク構造が
Chainer v2による実践深層学習 作者: 新納浩幸出版社/メーカー: オーム社発売日: 2017/09/15メディア: 単行本この商品を含むブログ (2件) を見る Chainer について書かれた数少ない本。 この9月に v2 対応版が出た。が、v3 リリース秒読みの時期に……というツラミはある*1。 深層学習ライブラリは現状「泳ぎ続けなければ死ぬ」(アップデート止まったら、終わったのかな? とか思っちゃう)ので、宿命的にしょうがないのかな。 社内でこの本の読書会とかしており、ちょいちょい間違いを見つけてしまう。 細かいのはもういいかなとは思うんだが(全部書いてたら正直キリがない)、せっかくの Chainer 本、読者が誤解すると事故が起きそうなちょっと大きめの間違いを放置するのはもったいないので、ここにメモしておく。 自分で読んだのは RNN 以降なので、主にその範囲。 以下、章
こんにちは. 今回はタイトルの通り,自己組織化マップ(The Self-Organizing Maps,SOM)をChainerを使って実装してみました. SOMとは サラッと説明します.詳しくはコホネン先生の論文を読むか,検索してみてください. SOMはニューラルネットの一種で,高次元データの集合の関係を低次元マップに写像する役割を持ちます. ネットワークの構造は入力層と競合層の二層から成っています. ネットワークに入力されるのが高次元データ(高次元である必要はありません)で, 競合層が低次元マップ(多くの場合が二次元のグリッドです)になっています. 学習は教師なし競合学習という方法で行われます. まず,ネットワークにベクトルを入力し,入力層・競合層間の結合重みのうち最も入力に類似するものを探索します. (この結合重みに接続されている競合層のニューロンを勝者ニューロンと呼びます) 勝者ニ
はじめに YOLOとはYou Only Look Onceの略とのことですがまあ当て字ですかね。速度に特化した画像検出・認識用ニューラルネットワークで、Cベースのdarknetというフレームワーク上に構築されています。元論文はこちらです。特徴は、全画像からいきなりクラス確率と物体のバウンディングボックス座標を推論する点です。R-CNNなどと違って複数の候補領域に対して何度も推論しないでよいので、Look Onceだから速い、というわけですね。 TensorFlowに変換した例はすでにあるようなので、今回はchainer化をしてみます。Cで組まれているものをわざわざスクリプト言語に変換するのは中身を理解するためです。今回の記事では学習済の係数を使った推論のみを行いますが、論文を読んだ感じだと学習手順が最大の特徴の一つに思われるので、そのうちトレースしたいです。 コードはこちらを参照してくださ
本記事はChainer Advent Calendar 2016の20日目のエントリです。 ペンパイナッポー(以下PP)とアッポーペン(以下AP)の画像識別方式の確立は急務です。下記は"PPAP"のここ三ヶ月のGoogle Trend推移ですが、すごい速度で減衰しています。正直もう遅いのかもしれませんが、であったとしても次のビッグウェーブに一目散に乗れるように反射神経を鍛えておく必要があります。 PPとAPをひと目で見分ける認識器の必要性についてご理解いただいたところで、昨今のディープラーニングによる物体認識の進展に目を向けますと、Deep Learningによる一般物体検出アルゴリズムの紹介という記事にまとまっているように、優れた手法が次々と提案されています。最後のコメントにあるように、最大の課題は学習用のデータセットをどう準備するかというところです。 残念なことに、PPAPデータセット
in English はじめに 先のページで Caffe を使ったシーン認識(15分類問題)を試みた。今回は、Caffe の学習済みモデルを Chainer を使って Fine-Tuning することにより同じシーン認識を行ってみる。 計算機環境 これまでと同じく、Amazon EC2 にある g2.2xlarge を利用した。GPU を搭載したインスタンスである。 データセット 先と同じ LSP15 を利用する。このデータセットは15個のディレクトリから構成されている。 MITcoast MITforest MIThighway MITinsidecity MITmountain MITopencountry MITstreet MITtallbuilding bedroom CALsuburb industrial kitchen livingroom PARoffice store
前回、特定の値に対する微分係数を求めた。 式で書けば, 関数 f(x) に 対して x=a のときの微分係数 f'(a) を求めた。 そのとき、 x = Variable(np.array([5.0],dtype=np.float16)) として変数xを用意したのだが、np.array([5.0])で、スカラーを要素数1個の配列でわざわざ与えた。 ということは、配列に対しても、そのまま動くのではないだろうか。 ということで、 sin(x) を -np.pi <= x <= np.pi の区間内の複数の点に対して一気に計算してみよう。 まず、配列の生成を確認。 >>> np.array(np.linspace(-np.pi, np.pi, 21)) array([-3.14159265, -2.82743339, -2.51327412, -2.19911486, -1.88495559,
Chainerによる畳み込みニューラルネットワークの実装(2015/10/7)のつづき。今回はMNISTの数字画像認識ではなく、CIFAR-10(2015/10/14)という画像データを使った一般物体認識をやってみた。画像を10個のクラスに分類するタスク。実装にはChainerを使った。 MNISTは1チャンネルの白黒画像だったけれどCIFAR-10は3チャンネル(RGB)のカラー画像なので少しだけ複雑になる。CIFAR-10(2015/10/14)でも書いたけれどCIFAR-10の提供データは、各画像サンプルがchannel(3チャンネル)、row(32ピクセル)、column(32ピクセル)のフラット形式3*32*32=3072次元ベクトルの形で格納されている。Chainerでは画像を (nsample, channel, height, width) の形式にする必要があるためres
やっとchainerでCNNを動作させるところまで辿り着きました。かたりぃなです。 何がやりたいのか? ARというかHololensのMRで現実世界のオブジェクトを識別して追加の情報をユーザーに提示できれば楽しいだろうなと思っています。 HololensのAPIを軽く見たところ、深度マップなどの面倒は見てくれるようですが、画像からの物体検出などは見当たりませんでした。 画像処理といえばOpenCVなんかが有名で、最近はdnnモジュールが追加されているのでこいつを使って公開されている学習済みモデルを取り込めば一般物体認識はできそうですが、学習済みモデルを持ってくるだけでは私のやりたいことに届かなさそうです。 手作業で前処理や特徴抽出を記述していくのもアリかもしれませんが、そういう試行錯誤に時間を費やすのは勿体ないと思います。 なら自前でモデルを作ってDeepLearningのフレームワークを
<システムバージョン> ubuntu 14.04 python 3.5.1 chainer 1.7.0 CIFAR-10 and CIFAR-100 datasets 32x32pixelのカラー画像を10のクラスに分類します。 訓練画像が50000枚、テスト画像が10000枚です。 CIFAR-10のデータは、各画像サンプルがchannel(3チャンネル)、row(32ピクセル)、column(32ピクセル)のフラット形式3*32*32=3072次元ベクトルの形で格納されている。 Chainerでは画像を (Nsample, channel, height, width) の形式にする必要があるためreshape()して次元を変換している。 詳しくはここに書いてあります まずは、データの読み込み。 データのファイルはこのように分かれているために、読み込みには工夫が必要。 import s
皆さんこんにちは お元気ですか。私は元気です。 前回は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での読
動機 Residual Networkのようなdeeeepなニューラルネットワークを使ってみたいと思いました。 MNISTでは物足りなく、ImageNetはデータ集めるのが大変そう&学習に時間がかかりそう、という理由でCIFAR-10画像データセットをつかって画像の分類を行いました。 CIFAR-10画像データセットとは CIFAR-10画像データセットは小さいサイズのカラー画像のデータセットです https://www.cs.toronto.edu/~kriz/cifar.html 画像サイズは32 x 32px 10クラスの画像がそれぞれ6000枚、計60000枚の画像がある そのうち50000枚が学習データ、10000枚がテストデータ クラスはairplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck 実行
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く