Kerasのコーディングではまったこと集

Kerasのsessionはきちんとclearさせてないとエラーがでます Tensoflow + Keras のコードの実行で、 TypeError: 'NoneType' object is not callableというエラーがでて原因がわからず少しはまりました。 どうやら、kerasのバックエンドのTensorFlowのsession…

Google のTPU v3について

Google I/O 2018で発表された、機械学習を効率よく演算できる専用ASICチップのTPUについてです。 第3世代の発表が今回行われていたので、メモってみます。彼らのアナウンスをまとめると:Today we're announcing our third generation of TPUs. Our latest l…

TensorflowのTutorial "Deep MNIST for Experts"を試した時のメモ

wshinya.hatenablog.com前回は"MNIST For ML Beginners"の解説を読みプログラムを実行してみました。 今回は、以下のリンクから"Deep MNIST for Experts"の解説を読みプログラムを実行してみます。 Deep MNIST for Experts | TensorFlow前回のBeginners編と…

TensorflowのTutorial "MNIST For ML Beginners"を試した時のメモ

Tensorflowを勉強するにはTensorflowのTutorialを自分で入力して実行しながら理解するのが一番手っ取り早いです。 特に初めてTensorflowを動かすときには、以下のリンク先のMNIST for ML BeginnersというTutorialがおすすめです。 MNIST For ML Beginners | …

深層学習でよく使われる学習用データセットまとめ

追記: せっかくまとめましたが、arXivTimesに素晴らしいまとめがありますのでそれで十分ですね。 github.com MNIST: 手書き文字認識学習用データ 28pixel x 28pixel x 1channel 60000枚:training用 10000枚:test用 クラス: 10個の数字機械学習におけるHello…

Kerasを使っていてPILが必要になったときの対処法

conda install PILとやったらpythonのversionが3.5だと怒られてしまいます。 PILの代わりに、 conda install Pillowとすればいいようです。以下のサイトを参考にしました。 qiita.comPillowについては以下を参照 qiita.com

Tensorflow GPU版 + Keras + OpenCV ver3.0の環境構築

最近TF1.7もリリースされ、そろそろCUDA9.0にアップデートしないといけないと思っていたので、復習も兼ねてTensorflowの環境構築方法をまとめました。(2018年4月現在の情報)OS: Windows10Pro, 64bit 1) Tensorflow GPU版のためのCUDA環境の構築まずは、NVI…

NVIDIA GPUの歴史ざっくりまとめ

GPU

GPUのアーキテクチャの変遷について自分用のメモです 2006年 CUDA発表 G80アーキテクチャ発表 初めてのUnfied shader architecture GeForce88002007年 Tesla HPC用 TSUBAME1.2 Tesla S1070 2008年Top500で20位2009年 Fermi世代 double precisionの大幅な性能…

機械学習基礎の基礎: 過学習を防ぐ正則化

前回のブログでは2次元平面上の8つの点を10次関数でfittingしました。 すると、fittingする関数の自由度が高いために、8つの点すべてを通るようにうまくパラメータを調節できてしまい、学習データに対しては100%近い正解率がでるのに、新たなデータ…

機械学習基礎の基礎: 過学習

今回は過学習についてみて見ます。 まずは訓練データを作成します。 訓練データは3次関数にノイズを加えた8つの点(x, y)構成することとします。 プログラムの初めに8点生成して、それらの点を10次関数でfittingすることにします。 データの個数がfitti…

機械学習基礎の基礎: パーセプトロンで線形分離を実装してみる

今度は、パーセプトロンを使って線形分離をしてみます。 適当に線形分離できそうなデータを以下のように作ってみました。 データは2次元平面上の点の座標(x, y)とそれぞれの正解ラベル1 or -1をつけています。 10, 20, 1 11, 30, 1 15, 30, 1 17, 35, 1 5,…

機械学習基礎の基礎: 確率的勾配降下法の実装

前回のデータとコードを改造してStochastic gradient descent method(SGD)を実装してみました。 と言っても、大した改造ではなくパラメータの更新を1つの訓練サンプルごとに行うようにしただけです。 np.random.permutation(X.shape[0]) で、いったんランダ…

機械学習基礎の基礎: 非線形fitting

前回の線形fittingでは、身長が低いところでfittingのずれが大きくなっていましたので、今回は2次関数でfittingすることにします。 同時に、入力データやパラメータをmatrixで扱うことでコードをシンプルにしています。 前回との差分は、fitting関数を y = …

機械学習基礎の基礎: データ読み込みから線形fittingまで

機械学習の基本である線形回帰のコードを書いてみます。流れの説明: 1) データファイルの読み込み: データファイルはtextデータで x0, y0 x1, y1 ... のように格納しています。今回以下のような ダミーの(身長, 体重)データを使用しました. 85, 16.8 90.5,…

jupyterlabをインストールしてみた

jupyter notebookの次期バージョンとしてjupyterlabが予定されているらしいです。 以下の記事を読み、試してみたいと思いインストールしてみました。 http://www.publickey1.jp/blog/18/webidejupyterlabpythonrscala.htmlインストール方法 jupyterlabのgith…

Python + OpenCV3で顔認識

先日, Python + OpenCV3の環境を構築しましたので, この環境でWeb camからの映像を使用して顔認識してみました.初めにanacondaでopnecvの仮想環境をactivate して jupyter notebookを立ち上げます. 以下jupyter notebookのコードと解説を書きます. 顔認識用…

数理統計の勉強のための資料

機械学習やビッグデータを勉強していると根本的な数理統計の知識が足りないことに気づきました。 数理統計の勉強のための参考書をリストアップします。「Introduction to Mathematical Statistics」Introduction to Mathematical Statistics: Pearson New In…

Python + OpenCV3の環境を構築する

機械学習を学習したり, 具体的に深層学習とくにCNNを使ってみようと思った時に 画像の読み込みや簡単な前処理、後処理にはOpenCVが非常に便利です. そこでPython + CpenCV3の環境を構築してみました.まずは、いつものようにAnacondaで専用の仮想環境を用意し…

東大の松尾研究室, Deep Learning基礎講座やってみた

東大の松尾研究室がDeep Learning基礎講座を開設しているらしいです. 以下のブログに触発されて私も早速ためしてみました. karaage.hatenadiary.jpすると確かに上のブログに書いてあるようにlecture_chap05_exercise_master.ipynbのTensorBoardの可視化のと…

Kerasでmnist.load_data()したときにデフォルトでデータがセーブされる場所

WindowsでKerasのサンプルを実行したときの話です。 例えばmnist_cnn.pyを実行するとネットワークからmnistデータセットをはじめにロードしますが、そのファイルがおいてある場所は、 C:\Users\username\.keras\datasets になります.以下のソースコードを読…

Kerasのバックエンドを変更する方法

Anacondaでpythonとtensorflow及びKerasをインストールしてpythonからimprot kerasを実行するとバックエンドがなぜかtheanoになってしまう問題の解決方法です。 解決方法:(環境変数を書き換える) C:\Users\someone\Anaconda3\envs\someEnv\etc\conda\activa…

機械学習の論文を効率よく読む方法

機械学習に関しては日々多くの論文が投稿されていて、すべてに目を通すことは時間的に難しいです。以下のサイトでは、投稿される機械学習関連の論文をリスト化し簡単なサマリーが付けられているので このサイトを見れば世の中のトレンドを知ることができます…

proxyの設定

windowsのターミナルでpipでパッケージのインストールができないとき、 proxyの設定がされていなことが原因の場合があります.解決方法: ウィンドウズのシステム環境変数に以下の二つを追加すればよい. https_proxy http_proxy

「これならわかる深層学習 入門」 瀧 雅人著 の正誤表

機械学習スタートアップシリーズ これならわかる深層学習入門 (KS情報科学専門書)作者: 瀧雅人出版社/メーカー: 講談社発売日: 2017/10/21メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る瀧 雅人さんの「これならわかる深層学習 入門」 …

「機械学習入門」 大関 真之著 を読みました

機械学習入門 ボルツマン機械学習から深層学習まで作者: 大関真之出版社/メーカー: オーム社発売日: 2016/12/01メディア: 単行本(ソフトカバー)この商品を含むブログを見る表紙が機械学習の本の中ではトップクラスに機械学習らしくなくいい意味で手に取り…

Visual Studio codeでLatexを使う

TeX

Visual Studio Code でLatexを使って文章を書いて、コンパイル、platex2pdfまでやってしまおうという話です. まずはVSCodeのプラグインであるLaTeX Workshopをインストールし設定します. インストールと設定は以下の解説通りにやればすんなりOKです.elecho.h…

機械学習用ハードウェア

2017年の8月あったHot Chips 2017でマイクロソフトがディープニューラルネットワークの推論処理を高速で実行できる クラウド環境Project Brainwaveを発表したというニュースは気になりますね。 推論処理のレイテンシを下げることは今後IOTとか自動車とかエン…

pythonを使った深層学習用ライブラリkerasのインストール方法

kerasとは? kerasはTensorFlowやTheanoをバックエンドとして実行するライブラリです。 深層学習のネットワークのアーキテクチャの構築を直感的に記述することが可能なライブラリです。 要は、深層学習をお手軽に書くことができますよ、ということですね。 …

numpyで行列を扱うときに気持ち悪いこと

例えば以下のような行列計算をnumpyで書くときに皆さんはどのようにしますか。 A:1行2列の行列 B:2行3列の行列 C: C = AxB -> 1行3列の行列このとき, A= np.random.rand(2) B= np.random.rand(2,3) C= np.random.rand(3) と書くことが多いですが、 A, B, Cを…

Windows10でDraknetをビルドしてYOLOを動かして画像認識を試してみました

最近以下のような画像を見かけることが多くないですか? 自分のマシンでも動かしたくなりDarknetをダウンロードしてmakeして,手持ちの写真でやってみましたという話です. Darknet, YOLOのオリジナルサイトは以下になります. pjreddie.com基本的には以下のサ…