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 と呼ばれるほど定番のもので、ネットワークの構造などはとてもシンプルなものになりますが、その分短いコードの中に重要なエッセンスが凝縮されています。そのため、Tensorflow...

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

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

SwiftでFrameworkを作成する

こんにちは、大塚です。 Frameworkについて 少し前になりますが、swiftでライブラリを作成する必要があったので調べてみました。 ~Xcode5以前~ Cocoa Touch Static Library Objective-Cのみ ビルド時に静的にリンクされる、いわゆる普通のライブラリ 画像やnibファイルなどのリソースを含めることはできない ~Xcode6以降~ Cocoa Touch Framework Swiftが使える 導入が簡単なり、ビルドスクリプトなどが不要に 画像やstoryboardなどのリソースを含むことができる App Extensionsなど複数プロセスから共有可能 ビルドが速くなる 実体はディレクトリらしい...

MySQLのチューニングについて

こんにちわ! 初登校の池田です。 今日は私が以前使っていたDBのMySQLについての記事になります。 MySQLのSELECT時にORDER BYを使用した時のソートの話 テーブルにINDEXが貼られている事が前提ですが、 例えば3テーブルを結合し、ソートをかける時などに、 全てのテーブルの結合を行った後にマスターとなるテーブルで並び替えると、 Using filesortが発生し、SELECTの実行が遅くなる場合があります。 回避方法として、カラムの表示用のマスターテーブルと、ソート用に使うマスターテーブル(別名付け)を用意し 用途を分けたSELECT文にするなどがあります。 sample.sql SELECT   tbl1.col1,   tbl2.col2,...