オッサンはDesktopが好き

自作PCや機械学習、自転車のことを脈絡無く書きます

機械学習

npmが入らない(泣).やはりPythonアプリ厳しい? という話

こんにちは.changです. ふとした事情から,以前に試したReNomを再度使おうとしたところ,セットアップできずに断念しました. この記事の目的はReNomを動かすことではありません. Pythonをベースとした(主にディープラーニング関連の)アプリケーション開…

AIがスプリントトレインを学習するか試してみた

こんにちは.changです. 今回は強化学習がスプリントトレインを学習できるか試してみました. 0. トレインとは? 自転車ロードレースにおいて,ゴール前でチームで隊列を組んでエースを最終スプリントに導く戦略です. 映像*1の様に,エースを最後尾にして…

4人(?)のAIを自転車ロードレースで競わせながら学習させてみた

こんにちは.changです. 今回はAIを4名の自転車レーサー(マ○ュアン,ペ○ッキ,カ○ンディッシュ,カ○チェラーラ)に見立てて競わせてみました. 0. 自転車ロードレース 自転車レース戦術の必要知識については過去の記事*1*2をご覧ください. モデルにした選手…

Gif Animation: Bike race by 4 AI players

Case 0 Case 1 Case 2 Case 3 Case 4 Case 5 Case 6 Case 7 Case 8 Case 9

AIに自転車レースで対戦させたら,お見合いとかしてきた

こんにちは.changです. 今回は自転車レースでAI同士を対戦させながら学習させてみました. 0. 自転車レース 前回*1,スリップストリームを利用したゴールスプリントが,自転車レースで勝利をつかむ為の代表的な戦略であることを説明しました. 今回の記事…

強化学習に自転車ロードレースをやらせてみる

こんにちは,changです. 今回は強化学習に自動車ロードレース(っぽいこと)をさせてみます. 勝利の行方は??? 0. 自転車ロードレース 日本では馴染みが薄い自転車ロードレースですが,ヨーロッパではサッカーやF1に次ぐ程の人気スポーツです. およそ10年…

tensorflow + kerasで強化学習してみる

こんにちは.changです. 今回は強化学習をやってみます. ディープ・ラーニングにも少し飽きてきたので...(笑). 作ったのはよくあるインベーダー的なやつです. やってみると意外と大変でした(汗). kerasの環境が整っていなくて,tensorflow単独に先祖返り…

RTX 2080Tiを2枚刺しして,ディープ・ラーニングしてみる

こんにちは.changです. 今回はRTX 2080Tiを2枚刺ししてディープ・ラーニングを行い,1枚刺し,およびRTX 2080Ti + RTX 1080の組み合わせの場合との速度比較を行いました. 結果としては,RTX 2080Tiの2枚刺しが(条件付きで)最強でした. 0. 装着 以前から…

RTX 2081TiとRTX 1080で複数GPUを試してみる

こんにちは.changです. 今回はRTX 2080TiとRTX 1080を1枚ずつ使い,複数GPUでのディープ・ラーニングにトライします. RTX 2080Tiを2枚使うのが理想ですが,先日お話したように買えません*1. 旧機種との組み合わせで妥協する手もあるかと思い,試してみま…

汎用WindowsマシンでのTensorflow推論は,C言語 + CPUの一択

こんにちは.changです. 今回は,汎用のWindowsマシンにTensorflowの推論を実装する方法についての自論を書きます. 本当は汎用OSとしたいのですが,情けないことにAndoroidやiOSでソースを書いたことがありません(汗). ですので,今回はWindows限定です.…

ビッグデータでAIは賢くならない,という話

こんにちは.changです. 今回は,僕が考えるAIの実際について話そうと思います. ビッグデータを学習させてもディープ・ラーニングは賢くならない,という事についてです. 0. ビッグデータ ビッグデータとは,「データの収集,取捨選択,管理及び処理に関…

tensorflowのSessionを予め立てて,推論を高速化する

こんにちは.changです. 今回は,ディープ・ラーニングの推論処理を高速化します. 先日作った異常検知のビューワーですが*1*2,一度の推論に6秒かかっていました. 何故こんなにかかるのか疑問に思って調べてみると,tensorflowのSessionを立てるのに時間…

ディープ・ラーニングの回転不変性と,大きさの異なる異常検知について考える

こんにちは. changです. 前回紹介したU-Netによる複数種類の異常検知*1ですが,Class_2の検知が出来ていないと思ってみていたらViewerに間違いがありました. これを含めて,特徴や大きさの異なる複数の異常を検知する場合の課題について考察してみようと…

AIについて雑記

こんにちは.changです. 「AIって何?」という話は切りが無いので,触れないのが吉と思っています. 「人工の知能とは何?」という話をしようとすると,「天然の知能とは何」って話になります. そういう哲学的な考察は実は大好きですなんですが,,, この…

ディープ・ラーニング: 複数種類の異常検知におけるChannelの効能がスゴい

こんにちは.changです. 以前に6 ChannelのU-Netを構成して複数種類の異常を覚えさせたとき,「1 Channelで,傷の種類ごとに別のネットワークにした方が楽そうだ」と書きました*1. 今回はこれを掘り下げて実証してみようと思います. 結論を先に言っておく…

一枚の異常画像からディープ・ラーニングを組んでみる

こんにちは. 今回は異常画像が少ない場合のディープ・ラーニングの組み方について考えてみます. 0. 背景 以前に,AutoEncoderを用いた異常検知を紹介しました*1 *2 *3. そのとき,異常(傷)有り画像だけを集めて学習をする方が検出精度が高くなると書きま…

Deep Learning: pix2pixでピンぼけ画像を復元する

こんにちは. 前回*1に引き続き,pix2pixで遊んでみます. 今回はピンぼけ画像を鮮明化する,所謂,超解像のようなことをやってみます. 入力画像 前回と同じトカゲの画像を使います.前回は黒いシミを画像に付加したのに対して,今回はボカしを加えます. …

pix2pixで欠損画像を復元する

こんにちは. 今回は,GAN(敵対的生成ネットワーク)の一つであるpix2pixで欠損画像を復元してみました. ※出典*1 0. pix2pix GAN(敵対的生成ネットワーク)は,ディープ・ラーニングの中でも注目度が高い技術の一つです. オリジナル画像とそっくりの偽物を生…

走行距離とTSSがほぼ比例していた話

Cyclo-sphereを見ていて気が付いたことがあります. 週スパンで見ると,走行距離とTSSはほぼ比例しているのです. CTLを使ってトレーニング量の目安を決めてますが,走行距離の管理でほぼ同じ事が出来ると言えます. 高額のパワーメーターを導入する意味は果…

U-Netをkerasで書くと一寸大変だった,という話

kerasが使い易いので本格的に乗り換えようと思い,画像処理のメインツールとして使ってきたU-Netを移植しようとしたら,案外苦労したという話です. 以前に,tensorflow単独で書いたDAGMの異常検知*1を,keras + tensorflowで書き直します. 0. Sequentialが…

Lenux + tensorflowで作ったDeep Learningの学習済みネットワークを,Windowsに移植して推論する (3)

少し時間が空いてしまいましたが,3回目です. 1回目*1に失敗レポートを書くと宣言してましたが,,,なんと,解決して出来るようになりました!!! せっかくなので,成功レポート:Lenuxで作った学習モデルをWindowsに移植してC言語で推論する方法を書きま…

Lenux + tensorflowで作ったDeep Learningの学習済みネットワークを,Windowsに移植して推論する (2)

前回*1の続きです. 今回は学習済みネットワークをpbファイル形式で移植します. 1. チェックポイントをpbファイルに変換 チェックポイントを読み込み,pbファイルに変換して保存します. freeze_model.py import tensorflow as tf def main(): with tf.Sess…

Lenux + tensorflowで作ったDeep Learningの学習済みネットワークを,Windowsに移植して推論する (1)

長いタイトルですね(汗) Deep Learningの開発に際して「Pythonのプログラミングや学習までをLenuxで行い,推論をWindowsアプリで行いたい」ケースは多いと思います. 幾つかやり方はあると思うのですが,今回は以下の3通りを試します. WindowsにPython版te…

U-Netで6種類の傷を検出してみる

前回のトライ*1を拡張して,DAGMの全6カテゴリーの傷をU-Netで学習させてみます. 2カテゴリーで出来たのだから,6カテゴリーでも簡単にできるだろうと思ったのですが,案外苦労しました(汗) 入力画像 DAGM画像を↓↓の様に使いました. Category 学習 テスト …

U-Netで複数種類の傷を検出してみる

複数種類の傷を学習させるために,以前に作ったAutoEncoder*1を拡張します. 複数(=傷の種類)の出力画像を持てるようにネットワーク構造を変えればいいですね. あれこれ調べてみると,今回やりたい事はU-Netと同じであることに気付きました. Semantic Segm…

nvidia-390がインストール出来なくなったので,nvidia-410でDeep Learning開発環境を再構成してみる

Ubuntuがログインループになりました(泣) GPU関係の更新で,互換が取れなくなった様です. Deep Learning関係のライブラリもかなり更新されているようなので,この機(?)に更新することにしました. 症状 きっかけは,「ソフトウェアの更新」のうっかりクリ…

傷有りと傷無しを混ぜてDeep Learningしてみる

DAGMデータセットの傷有り・傷無しを混ぜてDeep Learningしてみます. 画像の割当は下記です. 傷有り 傷無し 学習画像 Class1_def 1-100 Class1 1-900 テスト画像 Class1_def 101-150 Class1 901-1000 前回*1と同様にラベルを伴ったAutoEncoderを使うのです…

Deep Learning: AutoEncoderで傷検出してみる

DAGM画像をAutoEncoderにかけてみます. 内容的には,これ*1とこれ*2をドッキングしただけです. mnistの場合*3と異なるのは,傷がある場所を1,傷が無い場所を0とするラベル画像を使っている事です. # label # trnLABEL = [] tstLABEL = [] # defection da…

mnistでAutoEncoderを試してみる

傷検出がなかなか進展しない*1ので,アプローチを変えることにしました. 傷検出を行う為のアルゴリズムとしては,先日ReNomで試した矩形検出*2か,元々参考にしていた論文*3で採用されているAutoEncoderになると思います. 更にもうひとつ,Segmentationで…

ReNomIMGの傷検出を試してみる

前回セットアップした*1ReNomIMGを使って,傷検出を行います. 1. ReNomTAGでラベル作成 今回もDAGM画像*2を使います. このデータセットには楕円式のパラメタから成るラベルが付いているのですが,今回はReNomの機能を使って手動でラベル付けします. 1. 1 …