Ahogrammer

Deep Dive Into NLP, ML and Cloud

機械学習

文字レベルの畳込みニューラルネットワークによる文書分類

はじめに 自然言語処理で文書分類は最も基本的なタスクの一つです。 文書分類は、SNSに対する評判分析、ニュースのジャンル分類、メールのスパムフィルタや文書の著者推定といった問題の解決に使われています。 このように基本的なタスクである文書分類は広…

デバッガを使ってKerasのモデルをデバッグする

3行まとめ Keras で作成したモデルをデバッグしたい。 Keras には標準でデバッガが用意されていない。 Keras の Session オブジェクトを tfdbg でラップしてデバッグする。 オープンソースのニューラルネットワークライブラリである Keras は計算グラフに基…

Kerasでカスタムレイヤーを作成する方法

Kerasでは様々なレイヤーが事前定義されており、それらをレゴブロックのように組み合わせてモデルを作成していきます。 たとえば、EmbeddingやConvolution, LSTMといったレイヤーが事前定義されています。 通常は、これらの事前定義された便利なレイヤーを使…

KerasのLambda層でreshapeしたとき、保存に失敗する(場合がある)話

TL;DR keras.backendのreshapeを使ってLambda層でreshapeしたい reshapeのshapeにテンソルを指定するとモデルの保存(save)に失敗する saveではなくsave_weightsを使うと保存できる 背景 まず問題が起きる状況について説明しておきたい。 簡単にまとめると以…

Keras の fit と fit_generator の速度を比較する

Kerasでモデルを学習させるときによく使われるのが、fitメソッドとfit_generatorメソッドだ。 各メソッドについて簡単に説明すると、fitは訓練用データを一括で与えると内部でbatch_size分に分割して学習してくれる。 それに対し、fit_generatorではbatch_si…

形態素解析を並列化して高速化するTip

自然言語処理ではその第一歩として形態素解析が行われることが多いと思います。 しかし、形態素解析をする際に、解析対象が大量にあると実行時間が結構かかります。 本記事では、Pythonの concurrent.futures モジュールを使った高速化方法を紹介します。 ナ…