You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
最近流行のDeepLearningを触ってみたいと思っていたところ、まずはkerasでmnistを動かしてみるのがよいとアドバイスいただいたので試してみました。 とりあえず動いたものの、pythonの知識もほとんどなく、機械学習も初心者なので、コードを見てもよく分からん。ということで、気になるところを調べてみました。同じような方の参考になれば幸いです。 Kerasとは Kerasは,Pythonで書かれた,TensorFlowまたはCNTK,Theano上で実行可能な高水準のニューラルネットワークライブラリです. Kerasは,迅速な実験を可能にすることに重点を置いて開発されました. アイデアから結果に到達するまでのリードタイムをできるだけ小さくすることが,良い研究をするための鍵になります. TensorFlowやTheanoの知識がなくても、手軽に深層学習を試すことが出来るライブラリっぽ
はじめに Kerasを使って画像分類プログラムを作成します。 プログラムを実行する前に大量の画像ファイル( .jpeg の形式)を用意して、画像の種類ごとにフォルダ分けしてください。後で分類テストをするので、テスト用のファイルは学習用とは別フォルダにしておいてください。 ic_module.py インポート Keras以外のライブラリ from keras.preprocessing.image import load_img, img_to_array, array_to_img from keras.preprocessing.image import random_rotation, random_shift, random_zoom from keras.layers.convolutional import Conv2D from keras.layers.pooling imp
Python向けディープラーニング・フレームワークのKerasが2.0にアップデートしました。 https://blog.keras.io/introducing-keras-2.html 今回は2.0のアップデート情報と、プログラムの書き方の変更箇所をおおまかにまとめていきます。 加えてKeras1.2とKeras2.0の違いをCifar10で比較してみたいと思います。 アップデートによる変更箇所 変更内容を掻い摘んで訳していきます。 即興で意訳してます、間違いが合ったらご指摘くださいm(_ _)m。 TensorFlow連携 KerasのバックエンドとしてTensorFlowを2015年12月からサポートしていましたが、TensorFlowのコードベースからKeras APIは隔離していました。 Keras2.0ではTensorFlow1.2ベースで直接呼び出し可能なAPIを提供します
TensorFlowの有名な例である、im2txt(Show and Tell)の実装系をGoogleの識別ネットワークのGoogLeNetではなく、VGG16というモデルを用い、 VGG16はもとの1000クラス識別問題に最適化されたプリトレインドモデルを用いるなどをして、計算負荷を下げたモデルを構築しました 日本語を出力するネットワークはまだわたしも知らないので、あまり見たことがないネットワークかもしれません Tensorflowとの違い 学習できる GoogLeNetではなくVGG16を利用 日本語(カタカナのみ)に対応 画像識別層をフリーズしているので高速の可能性がある 画像識別層が直接decoderのRNNに入力されるわでなく、encoderのRNNに一度入力される ネットワーク 直接VGG16からの入力を用いるのではなく、一度、seq2seqのモデルを参考に、エンコードしていま
In this tutorial Tutorial assumes you have some basic working knowledge of machine learning and numpy. , we will get our hands dirty with deep learning by solving a real world problem. The problem we are gonna tackle is The German Traffic Sign Recognition Benchmark(GTSRB). The problem is to to recognize the traffic sign from the images. Solving this problem is essential for self-driving cars to op
Class activation maps in Keras for visualizing where deep learning networks pay attention Github project for class activation maps Github repo for gradient based class activation maps Class activation maps are a simple technique to get the discriminative image regions used by a CNN to identify a specific class in the image. In other words, a class activation map (CAM) lets us see which regions in
最新のモデルでは一般的になってきているMuti-taskなモデルについて取り上げたいと思います。 Multi-task Learningとは Muti-task Learning(MTL)とは、1つのネットワークで複数のタスクを解くモデルです。 MTLの内容はこちらの記事にわかりやすくまとめられています。 直感的な理解としては、人は新しいタスクを学習しようとするとき、これまでの知識を活用することでスムーズに新しいタスクを学習することができます。例えば、将棋ができる人とできない人が新しくチェスを覚えようと思ったとき、将棋ができる人の方が覚えが早いことが多いと思います。 このように別の分野の知識を複合的に学習することで、学習のスピードや最終的な精度を上げようということがMTLのモチベーションです。 今回のモデル CNNによるクラス分類とAutoencoderを同時に解くモデルを紹介します。 デ
ディープラーニング(というかKeras)で簡単な重回帰分析をやってみました。 ディープラーニングというと分類問題や強化学習のイメージがありますが、別に回帰分析ができないわけではありません。 ニューラルネットワークは回帰分析にも使われるものなので、ディープラーニングでも回帰分析をしてみよう、という試みです。 作ったコードはここにあります。 https://github.com/shibuiwilliam/keras_regression_sample 今回やること KerasのKerasRegressorというAPIを使って重回帰分析を行います。 データはscikit-learnが提供している糖尿病患者のサンプルデータです。 回帰分析ではよく使われるもので、小さくて便利なデータになっています。 今回の目的はディープラーニングやニューラルネットワークで回帰分析を実行する手順を書くことです。 た
Neural networks like Long Short-Term Memory (LSTM) recurrent neural networks are able to almost seamlessly model problems with multiple input variables. This is a great benefit in time series forecasting, where classical linear methods can be difficult to adapt to multivariate or multiple input forecasting problems. In this tutorial, you will discover how you can develop an LSTM model for multivar
How HBO’s Silicon Valley built “Not Hotdog” with mobile TensorFlow, Keras & React Native Too Long; Didn't ReadThe <a href="http://www.hbo.com/silicon-valley">HBO show <em>Silicon Valley</em></a> released a real AI app that identifies hotdogs — and not hotdogs — like the one shown on season 4’s 4th episode (the app is <a href="https://www.seefoodtechnologies.com/nothotdog/">now available on Android
ホーム < ゲームつくろー! < IKD備忘録 VisualStudio + Pythonでディープラーニング Kerasの使い方をざっくりと (2018. 11. 21) 前章でPythonによるディープラーニングの開発環境を整えました。本章では根幹ライブラリの一つである「Keras」について見ていこうと思います。非常に使いやすいライブラリですが、ディープラーニングの奥深さをそのまま反映しているので、この章では「兎に角なんか雰囲気掴みたい!」という目的でKerasをざっくり触ってみる事にします。 ① Kerasとは? KerasはPythonで書かれたニューラルネットワーク学習ライブラリです。ニューラルというのは「脳神経」の事、そしてネットワークは「網」の意味です。つまりニューラルネットワークとは脳神経の網状構造の事で、それをプログラム上で模倣して脳神経のような働きをさせてしまおうという
Posted by Sandeep Gupta, Josh Gordon, and Karmel Allison on behalf of the TensorFlow team TensorFlow is preparing for the release of version 2.0. In this article, we want to preview the direction TensorFlow’s high-level APIs are heading, and answer some frequently asked questions. Keras is an extremely popular high-level API for building and training deep learning models. It’s used for fast protot
俺俺DLフレームワークを作るにはKeras一択のような気がしてきました。 KerasでNNに特定のデータを入れた時に、狙った層の出力をnumpy形式で出力する方法です。やりかたはKeras FAQをみました。簡単です。 https://keras.io/ja/getting-started/faq/#_1 やってること http://d.hatena.ne.jp/natsutan/20170212/1486862458 ここで作ったNNに一枚絵を入れて、その途中の計算結果を取り出しました。入力データはひらがなデータを入れていますが、やっていることはNNも含めてMNISTと完全に同じです。 モデルと学習結果を読み込む 学習後に保存したjsonファイルとhd5ファイルを読み込みます。ファイルの作り方はここを参照。 http://d.hatena.ne.jp/natsutan/20170212/
概要以下の記事でChainerを使った場合のLSTMを学習する手順を整理しましたが、本記事ではKerasを使った場合について同様に整理してみました。結論から言うと、単純にLSTMを使いたい、と言うニーズであればKerasの方がかなりお手軽でした。 kerasを使ってLSTMを使うまでの流れまずはtensorflowとkerasをインストールします。 pip install tensorflow pip install keras 次にkerasのLSTMに投げ込むデータセットを作成します。おそらくここが唯一分かりにくい部分ですので、絵を書いてみました。左側が元データ、右側がkerasのLSTMが必要とするデータの形式です。kerasのLSTMでは、左の列から右の列に向けてデータをLSTMに投入していき、一番右の列が出力として得られる仕様になっているようです(return_sequences
はじめに Deep Learningをやろうと思ったらでかい計算資源が必要なのが当たり前なのだけど、手持ちのPCのスペックで十分とかそうそうありはしないので、EC2のGPUインスタンスをささっと立てて使うのも手だと思う。 FrameworkはKerasでバックエンドはTensorFlow GPUバージョン。それをpyenv仮想環境でセットアップする構成とした。先日TensorFlow 1.0がリリースされてtf.kerasが実装されたみたいだけどまだ試してないので普通にKeras使うことにする。 環境構築についてはこちらを参考にさせていただいた。 AWSのGPUインスタンスでTensorFlowを動かす インスタンスの作成 EC2 Instance: クイックスタートにある Ubuntu Server 16.04 LTS (HVM), SSD Volume Type Type : g2.2
概要 『新しき 年の始めの うれしきは 古き人どち あへるなりけり』 以前に{tensorflow}のPythonライブラリをimportする関数を用いることで、gensimを活用できるという記事を書きました。 これにより、R/RStudio上ですべてを管理したい/されたいRおじさん(重度なRユーザーを指す。女性でも「おじさん」と呼称するので、淑女の方々はご配慮いただきたい)のできる幅が広がったと言えます。 今回はさらにTensorflowとTheanoのラッパーであるKerasというライブラリを用いてモデルを構築し、新年の挨拶によさそうな短歌の生成を試みました。具体的には「上の句を入力することで下の句を生成する」というタスクを設定しています。 なお、{tensorflow}自体の設定や使い方などは{tensorflow}でデータ分析のHello Worldであるirisデータの分類を行っ
This document walks through how to create a convolution neural network using Keras+Tensorflow and train it to keep a car between two white lines. Updated Feb 2, 2017 - Thanks to comments on Hacker News, I've updated this doc to use more machine learning best pratices. Here is a Raspberry Pi controlled RC car using the autopilot crated in this document to drive between the lines. See the donkey rep
概要 CNN の学習を行う場合にオーグメンテーション (augmentation) を行い、学習データのバリエーションを増やすことで精度向上ができる場合がある。 Keras の preprocessing.image モジュールに含まれる ImageDataGenerator を使用すると、リアルタイムにオーグメンテーションを行いながら、学習が行える。 キーワード ImageDataGenerator オーグメンテーション (augmentation) 関連記事 具体的な使い方は以下を参照。 pynote.hatenablog.com 概要 キーワード 関連記事 ImageDataGenerator 基本的な使い方 オーグメンテーションの種類 回転する。 上下反転する。 左右反転する。 上下平行移動する。 左右平行移動する。 せん断 (shear transformation) する。 拡
はじめに 本記事ではKerasとScikit-learnの簡単な使い方を紹介します。 イントロ Scikit-learn・Keras ← 今ココ! モデルの性能指標・評価方法 データの前処理・データ拡張 早期終了(early stopping)・正則化 転移学習 ハイパーパラメータのチューニング モデル圧縮 応用 Scikit-learnはPythonによる機械学習ではよく使われるライブラリで、サポートベクターマシンや決定木、ランダムフォレストなど有名な機械学習アルゴリズムをサポートしています。他のライブラリもScikit-learnを似せてインタフェースを作っていることが多いので、覚えておくとあとでつぶしが効くと思います。 インストール 基本的な使い方 機械学習アルゴリズムのオブジェクト(例:model)を生成する この段階で各種アルゴリズムのハイパーパラメータを設定する model.f
ここでは、Python3.6.4 で行なっています。また、主に以下のパッケージを利用しています。 Keras (2.1.5) はじめに kerasでGrad-CAMを行ってみました。自分で作成したモデルで試しています。 モデルは、kaggleの dog vs cat のデータについてResnet50で転移学習をおこない 作成しました。 犬か猫かを判別するモデルについて、どこの影響が大きいのかをみてみます。 なお、画像サイズは200x200でモデルを作成したので、そのサイズにしています。 まずは関数の部分。 # coding:utf-8 import pandas as pd import numpy as np import cv2 from keras import backend as K from keras.preprocessing.image import array_to_i
Deep learning is a group of exciting new technologies for neural networks. Through a combination of advanced training techniques and neural network architectural components, it is now possible to create neural networks that can handle tabular data, images, text, and audio as both input and output. Deep learning allows a neural network to learn hierarchies of information in a way that is like the f
この記事は、「Elixir Advent Calendar 2017」の25日目です Merry Xmas!(実に1日遅れですが…) Elixir Digitalization Implementors/fukuoka.ex/kokura.ex の piacere です ご覧いただいて、ありがとうございます 私は普段、福岡のスタートアップ企業のCTOとして、「ビッグデータ分析+AI・ML開発の統括」と「Elixir・Phoenix/Kerasリードプログラマ」をしながら、福岡Elixirコミュニティ「fukuoka.ex」のMeetUp(偶数月定期開催)やプログラミング入門ハンズオン、もくもく会を主催しています ちょうど先週末、「fukuoka.ex #4 ~ Elixirのビッグデータ分析~」というテーマでMeetUpを開催したので、そこで扱ったセッションの一部をコラム化してみようと思い
Keras was initially released a year ago, late March 2015. It has made tremendous progress since, both on the development front, and as a community. But continuous improvement isn't enough. A year of developing Keras, using Keras, and getting feedback from thousands of users has taught us a lot. To the point that we are now able to redesign it better than we could have the first time around. And so
こんにちは。 AI coordinatorの清水秀樹です。 サンプルソースコードのSSD_kerasを使ってリアルタイム映像からの物体検出ができるようになると、自分で学習させたモデルで物体検出をやりたくなります。 そこでどうやったら学習モデルが作成できるのかネットサーフィンをしていたら、データ準備がとても大変かつ難易度が高いことを知りました。 中ば途方に暮れていたところ、実際に自分で準備した画像を画像データ準備用のツールを開発することで、独自の学習モデルを作成していたサイトを見つけました。 そのサイトを参考に、筆者でもその方法で試してみたところ、色々苦労しながらも無事に物体検出をすることができましたので、個人的な備忘録の意味も兼ねて、その内容の紹介をしたいと思います。 できるだけ分かりやすく説明していますので、挑戦してみたい方は当記事を参考に学習モデルを作成してみてください。 参考にさせて
概要 時系列の1時刻後の分布を推定した パラメーターが時間に依存する正規分布を仮定した ニューラルネットが正規分布のパラメーターを学習できるように適切な損失関数を導入した 概要 問題意識 データと今回の目的 データ 目的 仮定 モデル 損失関数 結果 損失関数の導出 まとめ あとがき 問題意識 ニューラルネットの出力は点推定になっていることがおおい。 例えば、一時刻先の電力使用量を予測して、14.5[kW]使いますよ、といった出力が点推定である。 しかし、点推定では重要な情報が抜け落ちる可能性がある。 たとえば、予測された電力使用量と実際の電力使用量を比較して異常な状態を検知したい問題を考えてみる。 直感的には、予測と実測値が離れていれば異常と言える。 しかし、どれぐらい離れていたら異常なのか、異常度はどれぐらいなのか等を判断するのは難しい。 そこで確率分布が必要となる。 値を予測する代わ
SequentialモデルでKerasを始めてみよう Sequential (系列)モデルは層を積み重ねたものです. Sequential モデルはコンストラクタにレイヤーのインスタンスのリストを与えることで作れます: from keras.models import Sequential from keras.layers import Dense, Activation model = Sequential([ Dense(32, input_shape=(784,)), Activation('relu'), Dense(10), Activation('softmax'), ]) .add() メソッドで簡単にレイヤーを追加できます. model = Sequential() model.add(Dense(32, input_dim=784)) model.add(Activat
本稿では、Seq2Seq(Sequence to Sequence)モデルによるチャットボットをKerasベースで作成するにあたり、学習用の日本語会話データ収集、整形、品詞分解手順を記述します。実行環境は、Google Colaboratoryを想定します。 1. はじめに Kerasは少ないコードでニューラルネットワークを構築することができ、大変重宝しています。あまりに便利なので、KerasベースでSeq2Seqを実装しようと思ったときにも、「Seq2Seqレイヤー」のようなものがすでにあって、1行で実装完了!などと言ったことを期待していましたが、残念ながらそうではありませんでした。 そこで、Keras : Ex-Tutorials : Seq2Seq 学習へのイントロを参考に、Kerasベースの日本語チャットボット作成に挑戦してみます。 2. 本稿のゴール 以下の段取りを踏んで、Seq
Update (24. 03. 2017): My dear friend Tomas Trnka rewrote the code below for Keras 2.0! Check it on his github repo! Update (28.11.2015): This article become quite popular, probably because it's just one of few on the internet (even thought it's getting better). Please read the comments where some readers highlights potential problems of my approach. Furthermore I am afraid I can't help you with y
Too Long; Didn't ReadThere are hundreds of code examples for Keras. It's common to just copy-and-paste code without knowing what's really happening. In this tutorial, you will implement something very simple, but with several learning benefits: you will implement the VGG network with Keras, from scratch, by reading the VGG's* original paper. There are hundreds of code examples for Keras. It's comm
これまでのあらすじ KerasをSpark上で稼働させるdist-kerasをDockerから起動させることで、ディープラーニングをスケーラブルにしようとしてきました。 Spark × Keras × Dockerでディープラーニングをスケーラブルにしてみた Spark × Keras × Dockerでディープラーニングをスケーラブルにしてみた2 マルチホスト編 前回まででマルチホストでの分散処理に成功しました。 しかしマルチホストでDockerを起動する難点は、それぞれのホストで一々起動コマンドを実行し管理しなければならない点です。 そこで、DockerのオーケストレーションツールKubernetesを用いて、Docker管理を容易にスケーラブルにしてみました。 今回やること これまで作ってきたDistKeras on DockerをKubernetesで動かします。 Kubernet
functional APIでKerasを始めてみよう functional APIは,複数の出力があるモデルや有向非巡回グラフ,共有レイヤーを持ったモデルなどの複雑なモデルを定義するためのインターフェースです. ここではSequentialモデルについて既に知識があることを前提として説明します. シンプルな例から見てきましょう. 例1: 全結合ネットワーク 下記のネットワークはSequentialモデルによっても定義可能ですが, functional APIを使ったシンプルな例を見てきましょう. レイヤーのインスタンスは関数呼び出し可能で,戻り値としてテンソルを返します Modelを定義することで入力と出力のテンソルは接続されます 上記で定義したモデルはSequentialと同様に利用可能です from keras.layers import Input, Dense from kera
Keras動かせたから何かそこらにあるものを対象にできないかと、Raspberry Piの純正カメラモジュールを使って、定番の画像分類をやってみた。 RasPi OneでTensorflow/Kerasを動かす。で使ったKerasのClassify ImageNet classes with ResNet50にPicameraの出力を渡しているだけです。 カメラモジュール: PiNoIR Camera Module オリジナルのものです。今はVer.2になってます。 サンプルコード import io import time import picamera import picamera.array import cv2 from keras.applications.resnet50 import ResNet50 from keras.preprocessing.image impor
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く