MATHGRAMスマートフォン用の表示で見るMATHGRAM主に数学とプログラミング、時々趣味について。画像処理ようやくpart3でございます。画像の縮小&水増しまずは2値分類してみる。新規データをFasterRCNNを使って分類させる(むしろ全てはこれのため)正直、2値分類をやる必要はないのかもしれませんが、まずはどんなもんなのか結果が早く見たいのでとりあえずってことで。コード先にコードを載せます。clf_bake_model.pyとして保存しています。np#chainerからChainを継承してクラスを作成します。このネットワークの部分は後々改善させます。今回、モデル自体をクラスとしています。後々、モデルの保存やロードのためにchainerのserializersを使っているのですが、いまいちこの使い方がわからず(特にload_hdf5)結局こんな感じになっています。メンバーとして今回ネットワークで使う関数を定義しています。クリアモジュールは初期化を行うだけの簡単な関数。メインのフォワードモジュール。ここの部分の作り方で、学習の精度は変わると思うのですが、ここの作り方の明確な方法がよくわからず(経験則ちっくなのかな?)とりあえず、下記の参考サイトさまと同じようにネットワークの定義をしました。最初に取りかかるべき改善点はここになるはず。y_data)の部分についてはもう少し深い解説をします。ソフトマックス関数とは?ソフトマックス関数とは他クラス分類で用いられる関数で以下のように定義されています。した時、をソフトマックス関数とする。総和が1になることこの層の出力全てを使って定義されているこの2点ですね。1個目の特徴から想像しやすいと思いますが、ソフトマックス関数の出力は確率を表現しています。確率が高かったクラスに画像を分類していく感じです。2個目の特徴は活性化関数としてソフトマックス関数を見た時の特徴なので、あまり気にしなくてもいいです。※いやいやこれ2値分類じゃねーか!!と思う方もいるかもしれませんが、2値分類は多クラス分類の部分集合なので大丈夫です。後々のことも考えてソフトマックス使っちゃってます。学習!以下がbake_train.pyの学習&テスト用のコードです。------データセット作成------#フォルダは整数で名前が付いています。#今回0が負例で、1が暦フォルダになっております。#まずは2値分類を目指すので暦フォルダとothersフォルダの中身だけ引っ張ってきます。#データを4:1の割合でtrainとtestに分けます。#またimreadはゴミを吸い込んでも、エラーで止まらずNoneを返してくれます。#ですので読み込み結果がNoneでしたらスキップしてもらいます。#上で作った関数でデータセットを用意します。#このままだとchainerで読み込んでもらえないので、array型にします。model)train()なるべくコメントを入れるようにしたので、わかりづらい場合はその辺を参照してください。この学習の推移はこんな感じです。accuracy=0.836555356405やはりGPUを使わないとかなり時間がかかってしまいます。学習は割と上手く行っています。epochが少ないですが次のパートでは、この学習済みモデルを使って未知データに適用させてみます。画像の縮小&水増しまずは2値分類してみる。主要キャラで多値分...GPU。Capitan)にubuntu14.04ぶち込んで、chaine...こんにちは。主要キャラで多...予定にありませんでしたがpart5.5でございます。»Profile表参道で働く、フロントエンドエンジニア普段はTypeScriptでReact&Redux書いてます。機械学習最近全くやってないけど、復活しようと企んでる。(2)Archiveはてなブログをはじめよう!ket-30さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。