studylog/北の雲

chainer/python/nlp

KerasがTensorFlow本体に統合される?

TensorFlowをバックエンドとして使用しており、Python製DeepLearningライブラリとしては頭5つぐらい抜け出している感じのあったKerasですが、TensorFlow本体に取り込まれる?動きがあるようです。TensorFlow/Keras人気はさらに加速して他のライブラリを寄せ…

数学的バックグラウンドが無い人は理論を勉強しようと思っても厳しい

という事を痛切に悟りました。無理・無茶です。2015に出たLSTMとかCNNの教科書的の段階ならば、自分みたいな人間でも頑張って青本読んでも何とか理解できました。でもそのレベルでは特に自然言語処理関係であまり実用的なモノは作れません。LSTMで言語モデル…

2016振り返り

今年も終わってしまいますね。今年の札幌の冬は強烈に寒そうで豪雪っぽいです。去年一昨年と生温い冬だったので久々に冬将軍炸裂って感じです。去年(2015)の6月頃からChainerを通してDeepLearningを触りだし、このブログもわりと更新してきましたが、今年中…

今年(2016)参考にさせてもらったChainerの論文実装、サンプルコード集

去年書いたサンプルコード集の2016年版です。 個人的な興味範囲のみ集めているので網羅的では無いとは思います。 基本的に上の方が新しいコードです。 QRNN(Quasi-Recurrent Neural Networks) 論文ではchainerを使って実験しており、普通のLSTMはもちろんcuD…

ChainerのcuDNN-RNN(NStepLSTM)のとっかかり

16.0の新機能NstepLSTMはcuDNN5.0以降で最適化されたcuDNN-RNNを利用できます。速くなるらしいです。 Optimizing Recurrent Neural Networks in cuDNN 5 | Parallel Forallこれの良い所は次元数が合わないデータでもミニバッチ処理が簡単にできる点です。 再…

NN言語モデルの低頻度単語とメモリ問題

低火力ディープラーニングにつきまとう問題として第一にGPUのメモリ問題がある。 個人で用意できるレベルのハードではとにかく足りない。以下言語モデル構築の話。 wikipediaの1/50コーパスをneologdで分かち書きしたときに語彙は25万ぐらい。 これを全部語…

Chainerのcleargradsと旧zerograds

1.15.0よりzerogradsが非推奨になりcleargradsというものが導入されたらしい。github.com0埋めはメモリいっぱい使うし意味が無いからNone埋めにする!みたいな感じ。 変更されたコードはこちら。上がclearで下がzero。 def cleargrad(self): """Clears the g…

Chainer1.14以上へのアップグレードで詰まる

久しぶりにchainerをアップグレードしようとしたらうまくいかなかった。chainer1.8.0→15.0.1 (CUDA7.5、CuDNNv4、Ubuntu14.04、python3.4) cupy/cuda/cudnn.cpp:8962:675: error: cannot convert ‘void*’ to ‘double’ for argument ‘15’ to ‘cudnnStatus_t c…

fastTextのsubword(部分語)の弊害

nlp

札幌は1桁まで最低気温が下がってきました。寒いです。Facebookが開発したfastTextを使ってみました。word2vecっぽくword embeddingをCPU環境で高速に生成してくれます。 github.compythonラッパーもありますが生成時に進行状況が表示されないので、生成時は…

『Chainerによる実践深層学習』が出版されます

9月9日にChainer本が出るようです。Chainerによる実践深層学習posted with amazlet at 16.08.31新納浩幸 オーム社 売り上げランキング: 2,884Amazon.co.jpで詳細を見る出版社の目次はこちら Chainerによる実践深層学習 | 理工学専門書,情報科学,知識科学・人…

次期GPUのGTX 1080正式発表(再追記:半精度アクセラレーション対応してなかった)

ついにPascalが正式に発表されました。単精度8.5〜9TFOPS・メモリ8GB・180Wで価格は$599、北米発売は5/27です。 980Ti(5.6)はもちろんTitanX(6.2)よりもTFLOPS上回ってきました。しかも省電力。これで$599は安いですね。 日本での実売は85,000〜90,000円ぐら…

シンプルなRNN - MGUとSGU(DSGU)

ようやく北海道も雪が解けて街中を自転車で走り回れるようになりました。あと二週間ぐらいで桜も咲きます。[1604.02910] Deep Gate Recurrent Neural Network [1603.09420] Minimal Gated Unit for Recurrent Neural Networks という二つのRNN関連の論文をGo…

TensorFlow強い

GoogleがCloud Machine Learningというインパクトのあるものを出してきました。TensorFlowが登場したときからある程度は予想されていたサービスですが思った以上に登場が早かった。TensorFlowの強みは2つあると思っています。1つ目はGoogle発ということで開…

次期GPUのPascalの詳細な情報が出てきた

現行のMaxwell世代から今年登場するPascal世代へとパワーアップするNvidiaのGPUの詳細な(噂)情報が出てきました。低火力ディープラーニング愛好家にとっては気になるところです。 スペック表 Nvidia GeForce X80 and X80 Ti Pascal Specs?表の左2つのモデル…

LSTM+トピック

全国的にはそろそろ春なんでしょうか。札幌は段々と暖かくなってきましたが今日の夜は氷点下6度だそうです。北海道の冬は長い。早く自転車に乗りたいです。 LSTMでの文生成の限界 狭い分野に限られたコーパスだとそれなりの文を生成できますが、ニュースやwi…

可変長データのミニバッチをchainerのwhereでやる

以前にもちょこっと書いたのだけど、自然言語はたいてい次元(単語数、文字数など)が合わない。データA 1 2 データB 1 2 3こんな感じで次元が合っていないデータをミニバッチで学習したい。 末尾をEOSで埋めてミニバッチ 可変長のミニバッチの時に末尾をEOSで…

chainerのwhereでbroadcastingやりたいけどtype_checkに弾かれる

numpyのbroadcastingは自分には難しくてあまり理解していなかったのだけど最近ようやく少しだけわかってきた。 Pythonによるデータ分析入門のP410からの説明、英語版だと嬉しい事にPython for Data Analysis - Free Download eBook - pdfより無料で読める。P…

低火力ディープラーニングのための環境(自作ハード編)

昨日こんなプレスリリースが話題になっていました。 www.sakura.ad.jp高火力ですって。強そう。 ちょっと前にはこんなのも話題に。 ディープラーニング専用GPUサーバファーム「紅莉栖(くりす)」を構築|ニュース|広報情報|株式会社ドワンゴ 現時点で世界…

CaboCha(python)で辞書指定

mecabの辞書はほぼneologdに切り替えて使っているのだけど、久しぶりにCaboChaをpythonから使おうとしたら辞書の指定の仕方がわからなかったのでメモ。 #デフォルト辞書を使う時 cabocha = CaboCha.Parser("") #辞書指定する場合はこう(ディレクトリは各々の…

chainer1.6.0リリース

一日前倒しでリリースされたようです。Release v1.6.0 · pfnet/chainer · GitHub1.5からの機能追加バージョンなので1.5のコードが動かなくなったりすることは無いようです。 インストール時にHDF5が必須じゃなくなった。1.5のインストールで躓いた人が多かっ…

chainerのバージョンごとの違い(2016年1月19日現在)

あと数日で1.6がやってくるchainer。 1.0~1.6までのバージョンごとの差について簡単にまとめてみます。 大きく分けると3つのグループ 1.0 1.1 1.2 黎明期バージョン1.3 1.4 CuPy導入1.5 1.6 色々とパワーアップした現世代特にこれからchainer始める人はこの…

可変長のミニバッチ、softmax_cross_entropyに-1、EmbedIDの謎挙動など

ほとんどChainer専用ブログになってきたのでタイトルにChainerメモって付けるのやめました。https://groups.google.com/forum/#!topic/chainer/VFbZCgccs6I ここで少し言及されていたので。[明日 晴] [今日 は 雨] [本当 に 凄い 雪]こういう可変長をミニバ…

PycharmのremoteインタプリンタでchainerのGPUを実行時にNo such file or directory: 'nvcc'

Pycharmのremoteインタプリンタは便利。ローカルマシンでコード書いて、リモートのUbuntuで実行するときにPycharm内で全て完結する。いちいちterminalで実行しなくていい。…はずなんだけどchainerをGPUで動かすと OSError: Failed to run `nvcc` command. Ch…

Chainer1.5の変更点についてのメモ

あけましておめでとうございます。今年もChainer中心に遊んでいきたいと思います。過去最大のアップデート 1.5。あまりにも変わりすぎていて以前のコードを1.5対応に書き換えるが結構大変です。 正直1.4のままでいいかな…と思いましたが、最新版についていか…

ディープラーニング用ライブラリの仁義なき争い勃発

GoogleがTensorFlowをリリースしてちょっとした騒ぎになっています。 tensorflow/tensorflow · GitHubGitHubに付けられたStarは既に6800。 それがどのくらい凄いかというと、3ヶ月前の時点でこんな感じの情勢だったんです。3 month later: Caffe reinforces …

ニコニコ静画の学習済みchainerモデルを試してみた

ドワンゴではニコニコ静画(イラスト)のタグを学習したChainer用のモデルを配布してます。またそれを利用したタグ推定や類似画像検索などの技術デモのほか、応用事例として画像を元に閲覧数やお気に入り数を推定する研究を紹介しています。 https://t.co/5x…

Chainerメモ13 type_checkをオフにして高速化

少し前から気になっていたのですが1.3.0よりtype_checkをオフにすることで処理を高速化できるようになっていました。 Function — Chainer 1.4.0 documentation type_check_enable When it is True, the function checks types of input arguments. Set CHAIN…

Chainer1.4.0がリリースされました

主にバグ修正、CuPy関係の機能追加のようです。 モデル構造変更、公式保存方法などの実装は一ヶ月後の1.5.0になりました。主な変更点はこちら https://groups.google.com/forum/#!topic/chainer/bnfSQpAux7M https://github.com/pfnet/chainer/issues?q=mile…

pythonのインデント

最初に結論を書くと pythonのインデントはスペース4つ タブを使うと色んなデメリットがある スペース4つ打ちが面倒ならエディタの設定でタブキーをスペース4つに置き換える もうかれこれ4年はpython使っててこれまでインデントについて深く考えた事がありま…

Chainerメモ12 恐怖のActualエラー

chainerを触りだした頃に一番遭遇していたエラーです。トラウマになりそうでした。こんなやつ。 chainer.utils.type_check.InvalidType: Expect: in_types[0].ndim == 1 Actual: 2 != 1 #こういうパターンもある 不等号だったりもする Actual: (1,2) != (1,1…