めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

TensorFlowのSavedModelに関するメモ

何の話かというと TF1.0から、新しいモデルの保存形式として、SavedModelが導入されました。 (参考)TensorFlow SavedModel このフォーマットの特徴と使い方のTipsをまとめます。 SavedModel形式で保存する方法 典型的には、Experiment APIを利用します。Ex…

「プログラマのためのGoogle Cloud Platform入門」が発売されます。

プログラマのためのGoogle Cloud Platfrom入門 サービスの全体像からクラウドネイティブアプリケーション構築まで作者: 阿佐志保,中井悦司出版社/メーカー: 翔泳社発売日: 2017/06/02メディア: 単行本(ソフトカバー)この商品を含むブログを見る翔泳社より…

データサイエンスに関する初心者向けの参考書

筆者が実際に読んだ(書いた)書籍の中で初心者向けのものを紹介しています。※英語の書籍については、日本語版は読んでいないので、翻訳のクオリティなどは未確認です。 データサイエンスとは? 「そもそもデータサイエンスって何?」という事を理解するのに…

Riemann幾何学ユーザーのための「双対平坦な多様体」入門

何の話かというと Riemann幾何学の知識を前提に、「双対平坦な多様体」を自然な形で導入する説明方法ってないかなーと考えていて、思いついた説明のストーリーです。 Riemann幾何学の復習 Riemann幾何学では、接続 ∇ に対して、計量的(平行移動が内積を保存…

Using Cloud ML with distributed TensorFlow code

What is this? enakai00.hatenablog.com As I mentioned in the article above, you need to make some modifications on your TensorFlow codes when you train the model with the distributed mode. I will explain some key aspects you need know to wr…

分散学習用TensorFlowコードの書き方

何の話かというと Google Cloud MLを利用して、TensorFlowの分散学習を行う方法です。取り急ぎ、自分用のメモとして公開しておきます。分散学習にはいくつかのパターンがありますが、最もシンプルな「データ分散」の場合を説明します。各ノードは同じモデル…

ネイピア数の導出と極限計算に関する補足

何の話かというと www.yukisako.xyzこちらの記事では、 ―― (1)を満たす は、 ―― (2)であることを導いて、これがネイピア数 の定義に一致することを示しています。この結論は正しいのですが、(1) から (2) を導出する課程で、極限の計算の取扱に不正確な部分…

捩率が0でない「平面」の例

何の話かというと みんな大好きRiemann幾何学では、計量を保存する曲率のある空間(平面)を取り扱いますが、この際、(Riemann多様体の前提として)捩率は必ず0になります。このような捩率0で曲率だけを持つ平面(二次元多様体)の例は、球面などを容易に想…

数学を学ぶ動機に関するポエム

最近ある技術書の筆者の方が書籍紹介のブログ記事の中で「俺は数学が嫌いだ」と言い放たれていて、ひどくショックを受けたので、心の傷を癒やすために、なぜ僕はこんなにも数学が気になって、数学を勉強したくなるか、頭の中を整理してみました。ちなみに僕…

Jupyterノートブック上でJavaScriptからカーネルのコードを実行する方法

qiita.comこれは、jupyter notebook Advent Calendar 2016の10日目の記事です。 何の話かというと IPython.displayモジュールのHTML関数を使うと、次のように、Jupyterノートブック上でJavaScriptを実行することができます。 from IPython.display import HT…

Using Cloud Dataflow to run parallel predictions with your TensorFlow model

Suppose that you've finished training your prediction model with TensorFlow, yeay!Now you have to make predictions with the trained model for tens of thousands of data. How will you do it?I will show you one of possible choices. You can us…

Using Cloud Vision API and Cloud Translation API from Google App Engine

qiita.comThis is a Day 7 entry for TensorFlow Advent Calendar 2016 (in Japanese). It's organized by Japan TensorFlow Users Group (TFUG) :)Recently I had a chance to create a prototype of a photo album application emulating the auto labelin…

導関数が自分自身と一致する指数関数が存在することの説明

何の話かというと qiita.comの3日目の記事qiita.comで、指数関数 において、 「のときの接線の傾きの値」となる をさがすと、それが (ふなひとはちにわ)になるんだよ!という解説があって、ほほぉー、と思いつつも・・・「この関係は のときだけに成り立つ…

Jupyter演習環境の準備手順

この手順では、メモリが4GB以上、CPUが4コア以上の環境を前提としています。 macOSを使用する場合 macOS用のDockerが対応しているのは、Yosemite以降のバージョンです。ここで紹介する手順は、El Captitanで動作確認をしています。 はじめに、Dockerの公式We…

Implementing a counter service with Bigtable

Cloud Datastore is the best friend for App Engine developers, yeay!However, it may be awkward to implement an incremental counter (like AUTO_INCREMENT in MySQL) over Datastore. The good alternative is to use Bigtable to implement a counter…

Cloud DatastoreのEventual Consistencyに関するメモ(google.cloudクライアント編)

何の話かというと Cloud Datastoreに対するQueryは、"Ancestor Query" を使用する事でStrong Consistencyが保証されます。逆に Ancestor Query を使用しなかった場合にどのような現象が発生するのかを雑多にメモしておきます。ここでは、GCEのVMからDatastor…

Cloud ML Super Quick Tour

cloud.google.com Background Google Cloud ML is now available as a Beta release (as of 2016/10/11). Super simply stated, you can do the following things using Cloud ML. (1) Train your custom TensorFlow models on GCP. (2) Serve prediction AP…

(日本語版) Cloud ML Super Quick Tour

cloud.google.com 何の話かというと 先日、Google Cloud MLがベータ公開されました。超ざっくりまとめると、GCPのクラウド上で次のことができるようになります。 (1) TensorFlowのコードを実行して学習済みモデルを作成する (2) 学習済みモデルをAPIサービス…

Kernel PCA (Principal Component Analysis) の導出

何の話かというと Python Machine Learning: Unlock Deeper Insights into Machine Learning With This Vital Guide to Cutting-edge Predictive Analytics作者: Sebastian Raschka出版社/メーカー: Packt Publishing発売日: 2015/09/23メディア: ペーパーバ…

「[改訂新版] プロのためのLinuxシステム構築・運用技術」が発売されます

www.amazon.co.jp2010年12月に初版が発行された「プロのための Linuxシステム構築・運用技術」の改訂新版が発売されることになりました。2016年9月20日に販売開始予定です。改訂作業にあたりご協力いただいた皆様に改めてお礼を申し上げます。本書の前付けよ…

フーリエ級数のアニメーションを作成するJupyter Notebook

フーリエ級数とは? あらゆる関数を三角関数の重ね合わせで表現する仕組みです。たとえば、次のような三角関数の足し合わせを考えます。 この時、係数 をうまいこと調整すると、 の範囲で定義された任意の連続関数 が表現できてしいます。係数の計算方法は次…

Jupyterで作成したGIF動画の例

日経Linux 2016年12月号 「Python&Jupyterでデータ解析入門 − 第4回 物理シュミレーションを動画で体験」で作成する動画です。詳細については、本誌記事を参照ください。等速直線運動 ランダムウォーク 水平投射 斜方投射 モンキーハンティング 花火 日経Li…

Google Container Engineで五目並べアプリのAPIサーバーを作るデモ

何の話かというと Dockerコンテナでアプリを作ると便利ですが、何でもかんでもコンテナに突っ込むと(たとえば、RDBとか)面倒な事も多くなります。・スケーラビリティが必要 ・機能単位のリファクタリング/アップデート(マイクロサービス化)が必要という…

「TensorFlowで学ぶディープラーニング入門 ~畳み込みニューラルネットワーク徹底解説~」が発売されます

TensorFlowで学ぶディープラーニング入門 ~畳み込みニューラルネットワーク徹底解説~作者: 中井悦司出版社/メーカー: マイナビ出版発売日: 2016/09/28メディア: 単行本(ソフトカバー)この商品を含むブログを見る表題の書籍がマイナビ出版より発売されるこ…

Using notMNIST dataset from TensorFlow

Using MNIST dataset from TensorFlow Google's TensorFlow provides a library for using MNIST dataset in a simplified manner. This is a three-line code to prepare the dataset. import tensorflow as tf from tensorflow.examples.tutorials.mnist i…

Table of Contents: Introduction to Google Cloud Platform for OpenStackers

Introduction to Google Cloud Platform for OpenStackers (Part I) Introducing the concept of Regions and Zones. Introduction to Google Cloud Platform for OpenStackers (Part II) Explaining the network architecture of OpenStack and GCP. Introd…

OpenStackユーザーのためのGoogle Cloud Platform入門:目次

・OpenStackユーザーのためのGoogle Cloud Platform入門(パート1) リージョンとゾーンの考え方を説明しています。・OpenStackユーザーのためのGoogle Cloud Platform入門(パート2) ネットワークの仕組みを説明しています。・OpenStackユーザーのための…

Introduction to Google Cloud Platform for OpenStackers (Part IV)

Disclaimer This is not an official document of Google Cloud Platform. Please refer to the GCP web site for the official information.cloud.google.comPart III of this article series is here.enakai00.hatenablog.comThis part shows how the typi…

OpenStackユーザーのためのGoogle Cloud Platform入門(パート4)

前置き これは、GCPの公式文書ではありません。公式ドキュメントについては、公式ホームページを参照ください。・Google Cloud Platform実際に試してみたい方は、60日の無料トライアルをお試しください。(クレジットカードの登録が必要ですが、トライアル終…

Introduction to Google Cloud Platform for OpenStackers (Part III)

Disclaimer This is not an official document of Google Cloud Platform. Please refer to the GCP web site for the official information.cloud.google.comPart II of this article series is here.enakai00.hatenablog.comIn this part, I will give a c…

OpenStackユーザーのためのGoogle Cloud Platform入門(パート3)

前置き これは、GCPの公式文書ではありません。公式ドキュメントについては、公式ホームページを参照ください。・Google Cloud Platform実際に試してみたい方は、60日の無料トライアルをお試しください。(クレジットカードの登録が必要ですが、トライアル終…

Introduction to Google Cloud Platform for OpenStackers (Part II)

Disclaimer This is not an official document of Google Cloud Platform. Please refer to the GCP web site for the official information.cloud.google.comPart I of this article series is here.enakai00.hatenablog.comIn this part, I describe netwo…

Introduction to Google Cloud Platform for OpenStackers (Part I)

Disclaimer This is not an official document of Google Cloud Platform. Please refer to the GCP web site for the official information.cloud.google.com GCP Basics Google Cloud Platform provides various computing resources as a cloud service o…

OpenStackユーザーのためのGoogle Cloud Platform入門(パート2)

前置き これは、GCPの公式文書ではありません。公式ドキュメントについては、公式ホームページを参照ください。・Google Cloud Platform実際に試してみたい方は、60日の無料トライアルをお試しください。(クレジットカードの登録が必要ですが、トライアル終…

OpenStackユーザーのためのGoogle Cloud Platform入門(パート1)

前置き これは、GCPの公式文書ではありません。公式ドキュメントについては、公式ホームページを参照ください。・Google Cloud Platform実際に試してみたい方は、60日の無料トライアルをお試しください。(クレジットカードの登録が必要ですが、トライアル終…

GCPでJupyterを利用する方法

GCEのVMインスタンスを利用する場合 Google Cloud Datalabを利用する場合 GCEのVMインスタンスを利用する場合 Dockerのコンテナイメージを利用して、Jupyterの環境を用意します。TensorFlowなど関連モジュールを導入済みのイメージをDocker Hubで公開してあ…

モンティ・ホール問題をJupyterでシミュレーション

モンティ・ホール問題とは? [問題]「プレイヤーの前に3つのドアがあって、1つのドアの後ろには景品の新車が、2つのドアの後ろにはヤギ(はずれを意味する)がいる。プレイヤーは新車のドアを当てると新車がもらえる。プレイヤーがドア1を選択した所、モンティ…

Google Cloud DatalabでGIF動画を作成する方法

何の話かというと enakai00.hatenablog.comこちらの記事の内容をGoogle Cloud Datalabで試してみたい方へのガイドです。 Cloud Datalabとは? cloud.google.comGoogle Cloud Datalabは、Jupyter Notebookをクラウド上で利用できるサービスです。gcpモジュー…

Jupyterで高校物理のアニメーション

何の話かというと JupyterでGIFアニメが作成できるようにしたので、高校物理で出てきそうな動画を作成してみました。Jupyterが動作するDockerイメージを用意してあるので、環境準備は、CentOS7なら下記の手順でOKです。 # yum -y install docker # systemctl…

倒立振子でDQNにおけるモデルの複雑さと学習内容の関係をちらっと確かめてみた系の話

何の話かというと qiita.com上記の記事では、「倒立振子」を題材にした、DQN(Deep Q Network)による強化学習の解説があり、非常によくまとまっています。一方、この記事の中では、全結合層を4層に重ねたネットワークを利用しているのですが、倒立振子の問…

No.10 TensorFlow Tutorialの数学的背景 − Convolutional Neural Networks (その1)

何の話かというと TensorFlow TutorialsのConvolutional Neural Networksでは、CIFAR-10と呼ばれる画像データセットの分類問題にCNNを適用しています。CIFAR-10は、次のような "airplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck" の10…

Literate Automation(文芸的自動化)についての考察

何の話かというと Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Notebookの適用 from No Bu www.slideshare.net上の資料で解説されている "Literate Computing for Reproducible Infrastructure" という取り…

Google Cloud Vision APIをJupyterから利用する

事前準備 enakai00.hatenablog.com上記の記事で紹介しているJupyter用DockerイメージにCloud Vision APIのクライアントライブラリーを追加しておきました。「使い方」の手順で起動して、Jupyter環境を用意してください。 サンプルノートブック github.com上…

Jupyter Notebook版「ITエンジニアのための機械学習理論入門」サンプルスクリプト

ITエンジニアのための機械学習理論入門作者: 中井悦司出版社/メーカー: 技術評論社発売日: 2015/10/17メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見るこちらの書籍のサンプルスクリプトをJupyter Notebookで書きなおしたものをGitHubで…

JupyterでTensorFlowが使えるDockerイメージ

Jupyterとは? まず、Jupyterの紹介をすると、これは、Python(IPython)による対話的なデータ分析処理をWebブラウザ上の「ノートブック」で実施するツールです。下記のように、Markdownで記述した文章とコード、そして、その実行結果が記録されていきます。…

TensorFlow Tutorialの数学的背景 − Vector Representations of Words

何の話かというと 本シリーズでは、これまで、CNNによる画像分類タスクを中心に解説してきました。ここでは、少し方向性を変えて、NLP(Natural Language Processing/自然言語処理)のタスクを取り上げます。Tutorialでは、Vector Representations of Words…

PRML6.4.2 Gaussian processes for regressionのメモ

基底を固定した場合の計算量 一般には、N✕N行例の逆行列計算が必要になるところが、有限個の基底を固定するとM✕M行列の逆行列計算に計算量が減少する理由を具体的な計算で確認。 Figure 6.10を再現するコード わかりやすさ優先で冗長なコードにしてあります…

「TensorFlow Tutorialの数学的背景」シリーズの目次

TensorFlowを使って、実際にコードを動かしながら、DeepLearningの仕組みを段階的に学んでいきましょう。 目次 ・No.1 TensorFlow Tutorialの数学的背景 − MNIST For ML Beginners(その1) 平面上の2種類のデータをロジスティック回帰で直線的に分類すると…

TensorFlow Tutorialの数学的背景 − Deep MNIST for Experts(その3)

何の話かというと enakai00.hatenablog.com上記の記事では、「−」「|」「+」という記号をCNN(畳み込みニューラルネットワーク)で分類することに成功しました。これを、MNISTの手書き数字画像に適用するのが今回の記事です。 使用するネットワーク ここで…

PRML Figure6.5を再現するコード

これです。 import numpy as np import matplotlib.pyplot as plt from numpy.random import multivariate_normal params = [(1,4,0,0), (9,4,0,0), (1,64,0,0), (1,0.25,0,0), (1,4,10,0), (1,4,0,5)] fig = plt.figure() for n in range(len(params)): (p0…