TensorFlow でのデータ入力方法まとめ ②

こんにちは! あゆた Machine Learning 担当の佐々木です。 前回 に引き続き、 今日も Tensorflow のモデルにデータを食わせる手法についてのお話です。 前回の記事で基本的なやり方を一通りおさえたので、今回は feed_dict と Queue を用いたハイブリッドなアプローチに ついて書いていこうと思います。 …という訳で以下、feed_dict を 使って Queue にデータを入れていく仕組みを実装していきます。 この記事も基本的にはこの記事...

TensorFlow でのデータ入力方法まとめ ①

こんにちは! あゆたディープラーニング担当の佐々木です。 今日は TensorFlow でモデルにデータを入れる手法についてまとめてみます。 パフォーマンスに関する本家の記事曰く、 チュートリアル等々で用いられている定番の feed_dict を使う手法だと、モデルの計算量やデータのサイズ次第では GPU を 活かしきれない事態になるそうです。(GPU の使用率がやたら低くなる) 原因としては、 CPU -> GPU 間のデータ転送が遅いことにあるようで、 次のデータが来る前に計算が終わってしまい、GPU が暇を持て余した状態になる場合があるようです。 そこで今回は Queue...

GCP の GPU インスタンスを使ってみよう[環境構築編]

あゆた機械学習担当の佐々木です。 前回の記事で GCP の GPU インスタンス作成までを行ったので、今回は Tensorflow のコードを動かすまでに必要な環境構築を行っていこうと思います。本記事では Ubuntu 16.04 LTS に Tensorflow 1.0.1 の GPU 版をインストールしていきます。 概要 まずは環境構築に必要な流れをざっくり俯瞰しておきましょう。必要な処理は以下になります。 cuDNN...

正規表現 基礎

Regex Golf 楽しいです。正規表現クイズ楽しいです。 和田です。今回は冒頭の通り、正規表現についてです。正規表現は使いこなせれば大変強力な武器になりますが、使い所を誤ると何を書いているのかわからない、「スパゲッティ表現」になってしまうので注意が必要です。 今回紹介する構文 基礎ということで基本的な構文です。 なお、言語は JavaScript を想定していますが、言語によって大きく変わるものではないので、大体の言語で大体そのまま使えると思います。使えなかった場合、該当言語のリファレンスを参照下さい。 ^ - 行頭を表す $ - 行末を表す x|...

GCP の GPU を使ってみよう[インスタンス作成編]

あゆた深層学習担当の佐々木です。 深層学習と言えば GPU!GPU と言えば、最近はクラウド上でハイスペックなマシンが使用できるサービスが流行っていますね!!この分野では AWS が有名な印象なのですが、先日2017年2月21日に Google Cloud Platform でも GPU インスタンスの使用が可能になったと!アナウンスがありました。 という訳で今回は GCP で GPU インスタンスの作成を行ってみたので、メモ的な意味で記事を残しておこうと思います。さて、GCP で...

LSTM で正弦波を予測する

あゆたでデータサイエンティストとして働く佐々木です。 今回は LSTM を用いて正弦波の予測をしてみます。 正弦波のように明確な規則性のある時系列データは、LSTM で予測を行うのに向いているテーマだと言えます。そのため、LSTM の原理や実装を理解するための練習問題としては都合がいいんじゃないでしょうか。 LSTM とは ディープラーニングで時系列データの学習を行う際に有効なものとして、 ニューラルネットワークを時間方向に展開した RNN (Recurrent newral network) があります。 しかし、従来の RNN では勾配消失問題があり、長期間の時間依存性が保持されないという問題点がありました。LSTM は勾配消失問題を解決するために改良された...

Google Apps Script でファイルを保存してみる

どうも ASTRONEER を無線接続でやっているとたくさんあるバグが更に増え、我慢できず有線接続にした結果、家の端から端までLANケーブルをはわせることになった和田です。 最近、 Google Apps Script を触っています。 ご存じの方もいるかと思いますが「なんぞや」というのをざっくり説明しますと、 MSOffice に付属する VBA の、 Google Docs 版といった感じです。 MSOffice の VBA のように、定型化した作業や大量のデータを扱う場合などにとても便利に使えるすごいやつです。こんなのがウェブで使えるようになったなんてすごい時代だ。...

Tensorlow tutorial series 2: MNIST Experts

あゆた AI 担当の佐々木です。 前回の MNIST ビギナーズ編に続き、今回はその続編であるエキスパート編の解説をしていきます。 このチュートリアルは前後半の2部構成になっているのですが、前半はほぼビギナー編のおさらいなので割愛します。 また、この記事では機械学習の原理的な説明は省略し、チュートリアルをコードとして理解できるようになるということに焦点を当てて解説していきます。なので、なぜこのようなコードになっているのか?という部分を主に解説していきます。 原理的なところのアカデミックな話は、後日別の記事でできればなと思います。 さて、ビギナー編で作ったシンプルなネットワークでは精度が92%でした。 精度をより一層高めるため、画像認識の分野で定番の CNN (Convolutional Neural...

Tensorflow tutorial series 1: MNIST for ML beginners

こんにちは! あゆたで AI を担当をしているデータサイエンティストの佐々木です。 業務で Tensorflow を扱っているので、今日はその使い方を解説しようと思います。 ということで今回は公式チュートリアルのMNIST For ML Beginnersを解説していきます。 MNIST は手書き文字分類を行うタスクのことで、0 〜 9 までの手書き文字の画像を入力し、書いてある数字を判別させるものです。 MNIST は機械学習の Hallo World と呼ばれるほど定番のもので、ネットワークの構造などはとてもシンプルなものになりますが、その分短いコードの中に重要なエッセンスが凝縮されています。そのため、...

Debian の apt/apt-get/aptitude について

和田です。最近は PC で ASTRONEER をやっています。惑星開拓楽しいです。 さて本日の話題ですが、 Debian 系の OS を使っていると知らず知らずのうちにお世話になっているはずの apt/apt-get/aptitude についてです。 これらはすべて Debian 系 OS のパッケージを管理するためのツールです。Red Hat Enterprise Linux 系で言うところの...