Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
はじめに 色々とセミナーをさせて頂くことが多くなり、特にAI関連技術のセミナーではあまり知らないで話をしていると、実は間違っていました...なんてことになりかねない。 ということで、勉強のためにAutoEncoderをScikit-learnで実装してみたので、その手順を以下にまとめます。 データセット 手書きの数字データがScikit-learnに用意されているのでこちらを利用します。 読み込んだら、いくつかの画像を表示して、どんな感じか確認します。 from sklearn.datasets import load_digits import numpy as np import matplotlib.pyplot as plt %matplotlib inline dig = load_digits() for i in [10, 230, 450]: npimg = np.arra
概要 共同研究のアルバイトでデータサイエンスっぽいことをすることになったので,忘れないようメモとして残すことにします. 企業さんから(詳しくは書けませんが)あるデータログを頂きました.それに対して処理を行っていきます. jupyter-notebook Jupyter-notebookを使おうと思います. 自分はanaconda環境を使用しているので, conda install jupyter でJupyter-notebookをインストール.使用したいディレクトリに移動して jupyter notebook でWebブラウザからPythonのプログラムを実行できるツールが立ち上がる. 画面右上にある[New]のボタンから[Python3]を選択して準備完了. あとはセルにコードを書いて,[Shift]+[Enter]で実行可能. パッケージ Pythonを使ったデータ解析,操作でよく使
はじめに モデルを訓練する際に,MNIST程度の画像サイズと枚数のデータセットであれば最初にすべてメモリに読み込むことができるので高速にイテレーションを回すことができます。 しかし,自前のそれなりに大きいサイズと枚数の画像データセットでモデルを訓練しようとすると,データがすべてメモリに乗り切らなくなってしまうことがよくあります。 ChainerのImageDataset Chainerには自前の画像データセットを扱うためにImageDataset, LabeledImageDatasetなどのクラスが用意されています。 これらのクラスは画像のパスやラベルだけを保持しており,画像データ自体はイテレータなどからget_example()が呼び出されるたびにその都度読み込まれます。 そのため,メモリに乗り切らないような大規模なデータセットも扱うことができますが,画像を参照するたびに読み込みのオー
開発環境 jupyterとDockerを使って、Kerasで学習してます。 問題だったこと モデルをロードしてさらに学習させたいけど、エポック数が0からになって上手く保存できない! 100epoch学習したあと追加で100epoch学習させたい! という時にどうしたら良いかわからずハマってしまったのでその解決策 保存されるファイル名を変化させる さて、早速本題です. どうすればファイル名の{epoch:02d}部分を変更させることができるのか. 答えは簡単! model.fitメソッドに引数として 'initial_epoch' を追加すれば良いです. これだけで学習が101epoch目から始まるようになります. モデルをloadしなくなった時にはinitial_epochを0に戻すように気をつけましょう. コールバックとは 学習と一緒に使うと効果的なのが、ModelCheckPointや
ubuntu18.04でTensorFlow-gpuを動かすまでの環境構築記事です。 まっさらな環境で導入した際の手順なので、会社や学校、個人で新しく機械学習環境を作る方に役立つ記事だと思います。 それでは、Nvidia driver, CUDA, cuDNN, Anaconda, TensorFlow-gpuを順に導入していきます。 実施環境 Ubuntu 18.04 LTS 日本語 Remix NVIDIA Geforce GTX 1050Ti Ubuntuのインストール 割愛しますが、参考リンクを載せておきます。 参考:[/homeを残して、Ubuntu 16.04LTS をクリーンインストールする] (https://qiita.com/hkuno/items/52ef4a300262a51f982e) 公式インストーラー:Ubuntu 18.04 LTS 日本語 Remix リリ
なんのために共有するか? ども!Masaです。 正直、初心者としては「コマンドラインいじるの!?…怖い…」「え、元に戻らなくなったらどうしよう…」みたいな不安があるとおもうんす。 そういう不安をへらすために得た知識・体験したものを共有します! 疑問が解消されたり、不安が少しでも減ったら 左のいいねボタンをポチッとお願いします! この記事でできるようになること、できないこと ・できること Pythonで便利なライブラリ(numpy,pandas,matplotlib)をインストール後、pyファイルの中で使えるようにimportしてサンプルコードを動かすことができるようにするところまで。 ・できないこと それぞれのライブラリの詳しい使い方 どんなライブラリをインストールしておきたいか? とりま3つのライブラリ! pandas -> 下2つと連携してデータ分析を支援。read_csvとread_
CSGAdventCalendar最終日です。 ChainerRLを使ってブロック崩しの学習をさせるチュートリアルをやりました。 実装はGoogleColaboratoryを使いました。 ChainerRLとは Chainerを使って実装していた深層強化学習アルゴリズムを”ChainerRL”というライブラリとしてまとめて公開したもの。 以下のような最近の深層強化学習アルゴリズムを共通のインタフェースで使えるよう実装している。 Deep Q-Network (Mnih et al., 2015) Double DQN (Hasselt et al., 2016) Normalized Advantage Function (Gu et al., 2016) (Persistent) Advantage Learning (Bellemare et al., 2016) Deep Deter
表題そのままのスクリプトです VGG16とSVMを使った判別機を作る際に使用したものの一部を切り取り、単独で機能するようにしました 動作概略 1)img2ndarray.pyと同じフォルダ内に保存された画像ファイルを読み込み 2)画像サイズを224x224にリサイズ後、Numpy配列化 3)**[npy]**ファイルとして保存 動作確認環境 python3.6.6 Tensorflow:1.10.0 Keras:2.2.2 スクリプト全体 import glob import numpy as np from keras.preprocessing.image import load_img,img_to_array # image array size img_size = (224,224) # load images Folder dir_name = 'test1' # File
○佐藤健フォルダ ○亀梨和也フォルダ 環境 個人PCは非常にプアな環境なので、コーディング&テストはCPUで行い、本格的な学習はGoogle Colaboratoryを使用しました。 ちなみにGoogle Colaboratoryの使い方ですが、詳しくは他の方の説明を見ていただくとして、ざっくりというと、 Google Driveにコード等が書かれたJupyter Notebookファイルをアップロードする 同じくGoogle Driveに画像ファイルをアップロードする Jupyter NotebookをGoogle Colaboratoryで起動する Google ColaboratoryからGoogle Driveが見えるようにする(ディレクトリのマウントもする) Jupyter Notebookを実行する といった感じになります。 以降は、Google Colaboratory上で実
はじめに tensorflow/models/research/slim にあるモデルを転移学習させようとしたら半日躓いたので、備忘録として解決策等まとめ。 公式ドキュメントにも転移学習のやり方が書いてるが、クラス数が同じ・全てのパラメータをrestoreさせる等、融通が効かない。 やろうとしたこと ImageNet等で学習済みのInception-v4(https://arxiv.org/pdf/1602.07261.pdf) を別のタスクに転移学習させようとした。 ネットで調べたところ、tensorflow/models/research/slim 以外に「学習済みパラメータ+コード」のセットが無かったので、これを利用することにした。 モデルの主要部分は tensorflow/models/blob/master/research/slim/nets/inception_v4.py h
time_steps = 1000 # data 1 a = 0.4 b = 0.5 c = 0.1 T_0 = 50 T_1 = 15 data_x_1 = [] for t in range(time_steps): temp_x = a * np.sin(2 * np.pi * t / T_0) + b * np.sin(2 * np.pi * t / T_1) \ + c * np.random.normal(loc = 0.0, scale = 1.0) data_x_1.append(temp_x) # data 2 a = 0.75 b = 0.5 x_ = 0.0 u_ = 0.0 data_x_2 = [] for i in range(time_steps): u = np.random.normal(loc = 0.0, scale = 1.0) x = a * x_
はじめに Deep learningをフルスクラッチで書いてきましたが,そろそろ内容も分かってきたので,ライブラリを使えるようになろうということで Tensorflowを導入しました 英語のDocumentationが分かりやすいですが,自分が詰まったところのメモを! 自分なりにクラスとか作って テンプレートも作成してみていますのでよかったら まだ未完成ですが github : https://github.com/Shunichi09/Deep_learning_tensorflow ちなみにtensorflowのいいところは 以下の図みたい自分の書いたレイヤーが簡単に見えることです これレイヤーダブルクリックとかすると細部まで見れます これがめちゃくちゃ強力です 機械学習においてもっとも大切な可視化が簡単にできますから おしながき 変数管理について 名前空間の使用 sess run と
(2018/09/07追記) 例えば結果画像の3枚目のベースのフォントと「告」のフォントが違うとはとても思えないとご指摘いただいたため、それぞれのフォントを比較してみました。 左から順に以下のフォントを使っています。 'Yu Gothic', 'Yu Mincho', 'MS Gothic', 'MS Mincho', 'Kosugi', 'Kosugi Maru', 'M PLUS 1p', 'M PLUS Rounded 1c', 'Sawarabi Gothic', 'Sawarabi Mincho' じっくり見るとそれぞれ微妙に違うようです。ほとんど見分け付きませんが… 前提 数ヶ月前に公文書が偽装じゃないかと騒がれていて、その理由は文章中のフォントが特定の箇所のみ違うから、であった。 私はその文章を見ても全くフォントの違いが分からないのだが、世の中には気づける人がいるらしい。 d
sklearnで交差検証をする時に使うKFold,StratifiedKFold,ShuffleSplitのそれぞれの動作について簡単にまとめ KFold(K-分割交差検証) 概要 データをk個に分け,n個を訓練用,k-n個をテスト用として使う. 分けられたn個のデータがテスト用として必ず1回使われるようにn回検定する. オプション(引数) n_split:データの分割数.つまりk.検定はここで指定した数値の回数おこなわれる. shuffle:Trueなら連続する数字でグループ分けせず,ランダムにデータを選択する. random_state:乱数のシードを指定できる. 例 import numpy as np from sklearn.model_selection import KFold x = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [3,
概要 前の記事「M5GOの加速度・角速度センサーでBlenderの3Dモデルを動かす」でM5GOの加速度・角速度センサーから算出した回転角度を MQTT Broker へ送信するプログラムを作ったので、同時にMQTT Brokerから取得したデータをリアルタイムにグラフ化するプログラムです。 (データは100ms間隔で送信されていますが、完全には追随できていないようで、動かし続けると表示が遅延してしまいます) 環境 M5GO (Firmware 0.15) iMac (macOS High Sierra) MQTT Broker (mosquitto version 1.4.15) matplotlib (2.2.3) M5GOでBlenderの3Dモデルを動かすのと同時に、回転角度のリアルタイムグラフ表示https://t.co/yr8vwqtHl7#M5GO #M5Stack pic.
はじめに Raspberry Pi上でImageNetの学習済みモデルを使い,カメラから入力した画像を認識しようとしましたが,モデルが大きすぎてメモリに乗りませんでした。 そこで,以下のようにラズパイからサーバーに画像を送信して認識結果を返すような仕組みを実装しました。 方法 ソケット通信でサーバーとやり取りします。 コードはGitHubのリポジトリにもアップロードしてあります。 サーバー側 画像認識の部分はChainerで行っています。 モデルはVGGを利用しました。 # coding: utf-8 import socket, threading import chainer import chainer.links as L import numpy as np class ImageNetPredictor: def __init__(self): self.model = L.V
MMdnnとは? Microsoft Researchにより開発が進められているオープンソースの深層学習モデルの変換と可視化を行うツールです。中間表現を経由することで様々なフレームワーク間でのモデルデータの相互変換を実現しています。 これはものすごいパワーを秘めていそうな雰囲気です。 github:Microsoft/MMdnn サポートしているフレームワーク 上記githubのサイトに詳細な表や説明があるのでここでは簡単に。 以下のフレームワークでモデルの相互運用が可能になります。 Caffe、Keras、Tensorflow、CNTK、MXNet、PyTorch、CoreML ONNXへの変換もサポートしていますが、こちらは一方通行で、ONNXから別形式は未対応らしいです。 テスト済みのモデルとしては、 VGG19、Inception v4、ResNet v2、SqueezeNet あ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く