準備 公式のDocker導入方法 docker、docker-composeがインストールされており、カレントディレクトリにdocker-compose.ymlがあるとする。 version: '2.4' services: nvsmi: image: ubuntu:16.04 runtime: nvidia environment: - NVIDIA_VISIBLE_DEVICES=all command: nvidia-smi
![docker-composeでgpuを使う方法 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/9366bc210a4ef3e57d14400ee021fd2be129ffd1/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9ZG9ja2VyLWNvbXBvc2UlRTMlODElQTdncHUlRTMlODIlOTIlRTQlQkQlQkYlRTMlODElODYlRTYlOTYlQjklRTYlQjMlOTUmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWU2YzkyYTk2MThiOGU1YWU0MGVhNWQ0NDcyZmIzODg5%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwaGdvaiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MTZkMTIxODc3NjI1MGUxMjRhMTU0MjUyN2Y2YWJhYzg%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D7f358c674308b51b34e1d206dfb6071e)
.app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads
#1では連載の経緯とDQNの理解にあたって簡単な全体像について言及し、#2ではマルコフ決定過程についてまとめました。 #3では#1で上がった話題である価値関数や報酬、ベルマン方程式について詳しく解説していきたいと思います。 以下、この記事の目次になります。 1. 簡単な復習 2. 価値関数に関して 2.1 状態価値、状態行動価値に基づく決断 2.2 方策(戦略)のアップデートはどう考えるべきか 2.3 報酬とベルマン方程式 2.4 Q関数の学習にあたっての方向性 3. まとめ 1. 簡単な復習 強化学習の問題設定として、MDPにおける状態価値や状態行動価値(状態における行動の価値)を算出する必要が出てきた際に、将来報酬も含めて現在の状態の価値を算出するのがベルマン方程式です。 2. 価値関数に関して 2.1 状態価値V(s)、状態行動価値Q(s,a)に基づく決断 #2ではマルコフ決定過程で
#1では連載の経緯とDQNの理解にあたって簡単な全体像について言及しました。 #2では#1で上がった話題であるマルコフ決定過程(MDP; Markov Decision Process)について詳しく解説していきたいと思います。 以下、この記事の目次になります。 1. 前回の復習 2. マルコフ決定過程の詳細 2.1 確率過程とマルコフ性 2.2 マルコフ過程と具体例 2.3 マルコフ過程からマルコフ決定過程への拡張 2.4 強化学習におけるマルコフ決定過程 3. まとめ 1. 前回の復習 軽く前回の復習から入ります。 大枠の問題設定自体がマルコフ過程なので系列データを取り扱うということです。系列というと難しく聞こえますが、簡単に考えると時系列のような取り扱いが必要だということです。 という風に書きましたが、強化学習は系列データの取り扱いを行います。系列データの取り扱いに環境の観測やエージ
強化学習の勉強会を行った際に予想以上に苦戦している方が多かった(他のトピックなら大体わかる人でも詰まっている人が多かった)ので、フォローアップシリーズを書いていければと思います。 #1では「scikit-learnとTensorFlowによる実践機械学習」の16章からDeep Q-Network(DQN)の話をピックアップしてまとめられればと思います。(予想以上に分量膨らんだので#1では全体の俯瞰にとどめ、#2~#5でそれぞれ1つずつ取り扱って行こうと思います。なので、ざっくりとした理解で一旦OKです。) わかりやすくはあり本に書かれている内容は読み取れたと思うのですが、本の対象的に実装よりなので厳密性に欠ける可能性を少々懸念しています。隔週開催が決まったのでこの辺は随時アップデートしていければと思います。 以下、この記事の目次になります。 1. 機械学習と強化学習 2. 参照本の重要なポ
はじめに 機械学習、してますか? 最近流行ってるみたいだからとりあえず機械学習やってみようとして、ChainerのMNISTサンプル動かして、なんかロスが減ってるみたいだから学習できているみたいだなぁ、というところまで来た後、「次はどうすればいいんだろ?」と途方にくれたことはありませんか。僕はくれました。 で、気を取り直して「せっかく手描き文字を学習させたのだから、自分の手描き文字を認識させたい」とか思ったとしますよね。さて、自分の手描き文字をどういう形にして何にどうやって渡せばいいのか、途方にくれたことはありませんか。僕はくれました。 というわけで、ChainerでMNISTの学習をさせたモデルをJavaScriptで取り込んで、ブラウザ上で手描き文字認識をさせるサンプルを書いてみました。ソースコードは以下の場所においておきます。 https://github.com/kaityo256
Chainerの活性化関数を可視化する。 動作環境 Ubuntu 16.04 Python 3.5.2 Chainer 3.2 numpy 1.13.3 opencv-python 3.2 ソースコード 全体はここ(Github)。main部は以下で、actfunに普段使うor使いそうな活性化関数を設定し、それを順次画像化していく。args.out_pathは出力先のフォルダ名。 import matplotlib.pyplot as plt import chainer.functions as F def main(args): actfun = [ F.relu, F.elu, F.clipped_relu, F.leaky_relu, F.selu, F.sigmoid, F.hard_sigmoid, F.tanh, F.softplus, ] x = np.arange(-10
C++でCPUのみでonnx-chainerで出力したONNX形式のDNNモデルの推論(Inference)をするライブラリ「Instant」を作った 背景 DNNを用いた一般的な機械学習の手法は学習フェーズと推論フェーズに分かれます.学習フェーズでは対象のデータを元にモデルのパラメータを調整し,推論フェーズでは学習フェーズで得られたモデルを実際の使用したい環境に組み込んで,実際に未知のデータを入力として結果を得ます.学習フェーズと推論フェーズの両方で用いることができるDNNライブラリは数多くあります(Chainer, Tensorflow, PyTorch, CNTK, Caffe2など). しかし,そのほとんどどれもPythonの使用を前提としているため,実際の推論フェーズの環境でPythonを使えない,もしくは使いたくないという場面は,そういったライブラリを直接使うことができません.
ONNXとは ONNXは、Open Neural Network Exchangeの略で、Deep Learningモデルを表現するためのフォーマットです。Chainer, MXNet, Caffe2などいろいろなフレームワークがありますが、各フレームワークがこのONNXというフォーマットでのモデルの保存・読み込みに対応することで、同じモデルを異なるフレームワーク間で受け渡し合うことができるようになります。 ONNXでは、Protocol Bufferというシリアライズフォーマットを使って、ニューラルネットワークでよく使われる様々なオペレータが定義されています。ONNX形式での出力が可能なオペレータの種類は、こちらに一覧されています:Operator Schemas。これとは別に、各フレームワークがどのようなオペレータの入出力に対応しているかがモデルを受け渡す際には重要になります。例えば、
Update (2018/04/20): Chainer v4に合わせ内容を更新しました。 注意: 今回はニューラルネットワーク自体が何なのかといった説明は省きます。 この記事はJupyter notebookを使って書かれていますので、コードは上から順番に実行できるようにチェックされています。元のJupyter notebookファイルはGoogle Colabを使ってブラウザから実行することができます。Google Colab上ではGPUを使った学習を実際に実行することができますので、「ドライブにコピー」ボタンをクリックしてご自分のドライブにコピーしてから、ぜひ実行してみてください。:Chainer Beginner's Hands-on.ipynb Qiitaだとページ内リンクつきの目次が勝手に作成されるので、全体概要はそちらを眺めて把握してください。 インストール Chainerの
The Qiita Advent Calendar 2017 is supported by the following companies, organizations, and services.
chainerのチュートリアルをこなしたあと、 mnistなどライブラリが標準で用意してる以外の独自データセットをどうやって作ったら良いんだろう? 複数のモデルが絡むネットワークを同時並行に訓練/評価するにはどうすれば? といった点で困ることが多くありました。 結果的にはChainerのトレーニング関係のコンポーネントを拡張/自作するのが良さそうなのですが、 それぞれにちょっとずつポイントが有ります。ここでは、トレーニング関連のオブジェクトを概観しながら 今までに書いてきたエントリをまとめます。(今後も増えるかも..) chainerのトレーニング関連コンポーネント概観 Trainer: 登録されたUpdaterを使って指定したepoch数やイテレーション数分だけ訓練を実行します。 Extensions: Trainerが実行される過程で付属的に実行される処理を規定します。 mizti.h
趣味でディープラーニングで遊ぶために GPU マシンを使いたい。 GPU は本当にすごくて、自分の MacBook Air で 2 時間かかるような学習が GPU を使うと 5 分足らずで終わる。CPU だけでディープラーニングするのは馬鹿馬鹿しいという気持ちになる。 しかし自宅に GPU マシンを組んだとしても四六時中計算し続けるわけでもないからもったいないし、ここはクラウドサービスを活用して安く済ませたい。1 さらに、最近では Docker コンテナ内から GPU を利用することができる NVIDIA Docker という Docker プラグインがあり、これを利用することで GPU マシンの環境を汚すことなく好きなだけ学習環境を立ち上げることができる。 今回は Amazon EC2 の GPU インスタンスと NVIDIA Docker を使って趣味用のディープラーニング環境を作った
2020/2更新 内容が若干古くなったため、個人ブログにリライトしました。 https://kakedashi-engineer.appspot.com/2020/02/10/mnist/ MNISTとは 概要 MNISTは28×28ピクセルの手書き数字のデータセット。 Deep Learning界隈の人は、とりあえずベンチマークとして使うことが多い。 各ピクセルは0から255の整数値をとる。 画像は全部で7万枚あり、内訳はtraining dataが6万枚、test dataが1万枚。 最初からtraining dataとtest dataが分かれているのがポイント。 これをそのまま使うこともあるが、 training dataのうち、後ろから1万枚をvalidation dataとして使うこともある。 (validation dataって何ぞ、って人はearly stoppingでググ
追記: 2017/06/06 その後の成果 その後の私達の努力の結果、下記記事のコードよりさらに高速化されています。近日sgemmのコードを公開する予定です。 また以下の記事ではraspiのgpuを活用する事で画像認識等が速くなるはずだという事を言いましたが、その後以下のような成果が出ています。ConvolutionやActivation等もGPU上で実行するようにしています。 Object recognition camera with GoogLeNet, a 1000-class image classification model, running locally on #RaspberryPi 3 pic.twitter.com/WP99ePpfrM — 中村晃一 (@9_ties) 2017年4月29日 Raspberry Pi Zero version pic.twitter
高火力コンピューティングを使って深層学習をできるようになるまでの連載の2回目の記事です。 前編では、プログラムを動かすための様々な環境構築を行いました。 今回は、前回作成した環境で実際に深層学習を行なって、機械学習の"hello world"と呼ばれている手書き文字分類を行います。 手書き文字分類では、下記のような手書き文字の画像データをそれぞれ0から9のどれに該当するかを分類します。 (http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf より引用) サンプルコードのダウンロードと実行 Kerasのサンプルコードを取得してきます。 $ wget https://raw.githubusercontent.com/fchollet/keras/master/examples/mnist_mlp.py 上のコマンドでダウンロードしたコードは、深
さくらインターネット 技術本部アプリケーショングループ アルバイトの伊東道明です。 ここ数年、人工知能や機械学習というワードが流行していて、興味のある方が増えてきています。 特に、機械学習の中でも深層学習(ディープラーニング)と呼ばれる技術がここ数年で爆発的に成長し、様々な大学や企業が特に力を入れています。 深層学習が利用されるようになったのは、GPUの普及による学習の超高速化が可能になったためです。しかし、性能のいいGPUは高価なため、なかなか手を出しづらい方も多いと思います。 さくらの高火力コンピューティングでは、GPUを積んだマシンを1時間単位でレンタルすることができます。1時間あたりの金額はなんとワンコイン以下です。そのため、比較的気軽に、そして簡単にGPUを使用でき、深層学習を始めたいけどリソース面で踏みとどまっていた方にはちょうど良い環境になるでしょう。 この連載では、さくらの
概要 定番の手書き数字データセット MNIST を Chainer を使用して3層のニューラルネットワークで学習してみました。 3層ニューラルネットワーク Chainer では、MNIST のデータを自動的にダウンロードして使用できる便利なメソッドが用意されています。それを使って、3層ニューラルネットワーク(2つある隠れ層のノードはそれぞれ 50)で学習を行い、正答率(accuracy)を測定しました。下のコードは、Chainer の MNIST サンプル を下敷きにしていますが、大幅に変更を加えてあります。 コード import numpy as np import chainer from chainer import Chain, Variable import chainer.functions as F import chainer.links as L class Neural
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く