画像関係のKaggleコンテストで、Kerasを使いつつコードを書いていたところ、前処理などで工夫しても厳しそうなレベルでメモリ不足に悩まされました。(しかし、一方で精度を上げるためになるべく多くのデータを使いたい) 他の人はどうやっているんだろう?と他人のカーネルを見ていたところ、KerasのSequentialクラスにfit_generator関数という、バッチ単位でデータを扱ってくれる(=瞬間的なメモリが少なくて済む)関数を使っているようでした。 過去に読んだ書籍だと、この関数は使っていなかったので、触りながら色々調べてみます。 簡単な例で試してみる。 MNISTで試してみます。モデルのコード自体は、以前書いたGoogle colaboratoryを試してみる(Keras & MNIST)のものをほぼそのまま使います。 X.shapeが(60000, 1, 28, 28)、y.sha
以下のshell sessionでは (base) root@f19e2f06eabb:/#は入力促進記号(comman prompt)です。実際には数字の部分が違うかもしれません。この行の#の右側を入力してください。 それ以外の行は出力です。出力にエラー、違いがあれば、コメント欄などでご連絡くださると幸いです。 それぞれの章のフォルダに移動します。 dockerの中と、dockerを起動したOSのシェルとが表示が似ている場合には、どちらで捜査しているか間違えることがあります。dockerの入力促進記号(comman prompt)に気をつけてください。 ファイル共有または複写 dockerとdockerを起動したOSでは、ファイル共有をするか、ファイル複写するかして、生成したファイルをブラウザ等表示させてください。参考文献欄にやり方のURLを記載しています。 複写の場合は、dockerを
KerasでF1スコアをモデルのmetrics(評価関数)に入れて訓練させてたら、えらい低い値が出てきました。「なんかおかしいな」と思ってよく検証してみたら、とんでもない穴があったので書いておきます。 環境:Keras v2.2.4 要点 KerasのmetricsにF1スコアを入れることはできるが、調和平均で出てくる値をバッチ間の算術平均で計算しているので正確な値ではない 正確な値を計算したかったらmetricsではなく、コールバックでエポックの最後に一括で求めるべき F1スコアとは Precision-recallのトレードオフの最適解を求めるための尺度。特に精度が意味をなさなくなる歪んだデータに対して有効。F1スコアについて知っている方は飛ばしていいです。 歪んだデータとは 2クラス分類を考えるとしましょう。設定は猫と犬の分類、メールがスパムかスパムではないか、なんでもいいです。2ク
はじめに ディープラーニングというワードは聞いたことがあるけどどこから手を出したら良いかわからないという人向け。 PythonとかCNNとかKerasとかさわったことない初心者が画像分類やるぞという記事です。 SIGNATE Data Science Competitionに参加して初めてディープラーニングを触ってみたところとっつきやすかったので知見を残したいというのが本記事投稿のきっかけです。 Google Colaboratoryとは Google Colaboratory(以下、Colab)は、クラウドで実行されるJupyterノートブック環境である。 機械学習などの基本的な環境構築は設定済みで、Tesla系のK80 GPUを無料で最大12時間まで使えるという神環境。 機械学習初心者からそれなりの規模までの学習の実行を行うのに適している。 今回やること Colabを初めて使うときの設
以下のshell sessionでは (base) root@f19e2f06eabb:/#は入力促進記号(comman prompt)です。実際には数字の部分が違うかもしれません。この行の#の右側を入力してください。 それ以外の行は出力です。出力にエラー、違いがあれば、コメント欄などでご連絡くださると幸いです。 それぞれの章のフォルダに移動します。 dockerの中と、dockerを起動したOSのシェルとが表示が似ている場合には、どちらで捜査しているか間違えることがあります。dockerの入力促進記号(comman prompt)に気をつけてください。 ##ファイル共有または複写 dockerとdockerを起動したOSでは、ファイル共有をするか、ファイル複写するかして、生成したファイルをブラウザ等表示させてください。参考文献欄にやり方のURLを記載しています。 複写の場合は、docke
※ 最後のshapeは人によって違うと思います。 書いてあるとおりに読むと、「なんやかんや問題があって predict() が実行できません」と書いてありますが、これWarningなので実際mlmodelは生成されます。 ただ、CoreMLは学習用ではなく推論用と今の所認識しているので predict() が使えないmlmodelは何のために存在するのか理解できません。WarningではなくErrorにするべきでは。。。 何のエラーなのか 以前私の記事にも書いたことがありますが、coremltoolsで変換したmlmodelには同一のレイヤーを使い回すshared layerが存在すると結構不安定な挙動をします。(というか多分coremltoolsが色々対応できていない。) それの一環(?)で、以下のようなモデルを変換するとKerasやTensorflowでは完璧に動作するのにmlmode
Deep Learningをやろう! この記事は、数学やプログラミングの知識のないものの、 本気で機械学習エンジニアを目指している方向けです。 追記 その後2019/7-社内異動でAIエンジニアになれました。勉強を始めてから一年と少しでした。 Deep Learningとは ここに来ている方は、すでにDeep Learningに深い関心があると思います。 もし、まだあまり詳しくない、という方がいらっしゃれば、下の記事を読んでみてください。 ディープラーニング(Deep Learning)とは?【入門編】 もともとの知識 数学とプログラミング、そして情報収集に必要な英語について、もともと(2018/6時点)私が持っていた知識です。 数学 文系だろうともちろん数学は必要になります。 高校 ・数ⅢCまで (当時は行列の基礎・二次曲線・微積分学だったと思います) 大学 ・経済学部 ・文系用の線形代
以下のshell sessionでは (base) root@f19e2f06eabb:/#は入力促進記号(comman prompt)です。実際には数字の部分が違うかもしれません。この行の#の右側を入力してください。 それ以外の行は出力です。出力にエラー、違いがあれば、コメント欄などでご連絡くださると幸いです。 それぞれの章のフォルダに移動します。 dockerの中と、dockerを起動したOSのシェルとが表示が似ている場合には、どちらで捜査しているか間違えることがあります。dockerの入力促進記号(comman prompt)に気をつけてください。 ファイル共有または複写 dockerとdockerを起動したOSでは、ファイル共有をするか、ファイル複写するかして、生成したファイルをブラウザ等表示させてください。参考文献欄にやり方のURLを記載しています。 複写の場合は、dockerを
以下のshell sessionでは (base) root@f19e2f06eabb:/#は入力促進記号(comman prompt)です。実際には数字の部分が違うかもしれません。この行の#の右側を入力してください。 それ以外の行は出力です。出力にエラー、違いがあれば、コメント欄などでご連絡くださると幸いです。 それぞれの章のフォルダに移動します。 dockerの中と、dockerを起動したOSのシェルとが表示が似ている場合には、どちらで捜査しているか間違えることがあります。dockerの入力促進記号(comman prompt)に気をつけてください。 ファイル共有または複写 dockerとdockerを起動したOSでは、ファイル共有をするか、ファイル複写するかして、生成したファイルをブラウザ等表示させてください。参考文献欄にやり方のURLを記載しています。 複写の場合は、dockerを
import google.colab import googleapiclient.discovery import googleapiclient.http google.colab.auth.authenticate_user() drive_service = googleapiclient.discovery.build('drive', 'v3') upload_filename = 'all.zip' file_list = drive_service.files().list(q="name='" + upload_filename + "'").execute().get('files') # ファイル ID を取得します。 file_id = None for file in file_list: if file.get('name') == upload_filena
本稿では、KerasベースのSeq2Seq(Sequence to Sequence)モデルによるチャットボットを、Bidirectionalの多層LSTM(Long short-term memory)アーキテクチャで作成し、Google Colaboratory上で動かしてみます。 1. はじめに 本稿はSeq2SeqをKerasで構築し、チャットボットの作成を目指す投稿の3回目です。前回の投稿では、単層LSTMのSeq2Seqニューラルネットワークを構築しましたが、今回は、これをBidirectionalの多層LSTMに拡張します。 2. 本稿のゴール 以下のとおりです。 ニューラルネットワーク(Bidirectional多層LSTM)の構築と、訓練 応答文生成 なお、本稿の前提となる動作環境は、冒頭でも触れたとおり、Google Colaboratoryです。 ただし、Google
1.すぐに利用したい方へ(as soon as) 「RとKerasによるディープラーニング」François Chollet、J. J. Allaire 著 https://www.oreilly.co.jp/books/9784873118574/ <この項は書きかけです。順次追記します。> docker dockerを導入し、Windows, Macではdockerを起動しておいてください。 Windowsでは、BiosでIntel Virtualizationをenableにしないとdockerが起動しない場合があります。 また、セキュリティの警告などが出ることがあります。 docker pull and run 以下のshell sessionでは (base) root@473fc1bb505d:/#は入力促進記号(comman prompt)です。実際には数字の部分が違うかもし
※△1 2019.02.01 動かない環境があった為修正 ※△2 2019.02.03 文章を各所修正 CNNの任意の特長マップを使用して可視化をするスクリプトです 下記にある通りGrad-CAMで表示がおかしくなる学習結果に対しても そこそこ良好な可視化結果を得られています。 ただし問題がありまして、識別率が低い画像を可視化すると 判別に使用していない特長フィルターも可視化されてしまうので 関係ないところまで反応してしまうという問題があります この辺はGrad-CAMの手法で解決できるので 両方を使い分けるのがいいと思います 確認環境 python3.6.6 , 3.6.7 , 3.6.8 Tensorflow:1.10.0 Keras:2.2.2 , 2.2.4 やり始めたきっかけ Grad-CAMを使って作成したモデルの評価を行っていました いつものデータセットを使いVGG16のファ
前回取り上げた秘書問題を再度取り上げようと思います。 秘書問題の大きな課題として以下二つの問題があります 1.応募者100人を超えてどこまで学習できるのか 2.理論はnが大きいとして$e/n$を導いているが、$n$が小さいときはどうなるの?? 恋するウワンとしては、2の課題の方が切実なので今回はこれを取り上げてみたいと思います。 2.理論はnが大きいとしてe/nを導いているが、nが小さいときはどうなるの?? まず、採用成功率の推移を見てみましょう。 n=50 Episode 1: reward: 0.000, steps: 27 採用成功率(1000回):0.394 n=20 Episode 1: reward: 0.000, steps: 20 採用成功率(1000回):0.396 n=10 Episode 1: reward: 0.000, steps: 6 採用成功率(1000回):
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く