studylog/北の雲

chainer/python/nlp

2015-01-01から1年間の記事一覧

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

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…

Chainer1.4.0は延期

二週間後の10月28日に延期されました。 モデルの構造をがらっと変えるための議論と実装に時間がかかっているようです。公式のモデル保存&読み込み方法も実装される予定でしたが、いずれも1.5.0(11月下旬?)になりそうです。 今のFunctionSetをpickleで保存す…

mecab-NEologdを使うと語彙はどのくらい増えるのか

nlp

mecab-ipadic-neologdを使って形態素解析すると語彙が増えすぎてしまうんじゃないかという心配があったので調べてみた。 (追記訂正:最初のデータは間違っていました。ごっそり消してwikipediaの詳細データだけ掲載します。すみません。) コーパスのテキスト…

Chainerメモ11 GPUで速度が出ない時

GPUなのに学習速度があまり速くならない、あるいはCPUより遅い時ってありませんか?そういうとき自分はまず「nvidia-smi -l 1」でGPUの使用率を見て100%に近い値を維持できているかどうかチェックします。NVIDIA System Management Interfaceというものらし…

chainer-Variational-AutoEncoderを使ってみた

最近早起きした日は北海道神宮・円山公園へリスに会いに行ってます。山のリスと違って人馴れしまくってて自分から足元にやってくるエゾリス。多分エサやってる人がいるんだろうな。こんな至近距離で撮れたのは初めてなので記念にアップ。 近所を散歩してたら…

chainerメモ10 AttributeError: 'module' object has no attribute 'init'

追記)2015.10.30 互換性維持のためバージョン1.4.0でcuda.init()が復活しました。 正確にはエラーで落ちなくなりdeprecatedを出すようになりました(つまり書いても書かなくても何もしない)。 以下の記事は1.3.0~1.3.2限定の話です。 chainerでcuda.initはも…

RNNいわく「ソクラテスの哲学量は131位(2013年、6.6%)」

nlp

RNNで思わずクリックしたくなるようなweb記事のタイトルを生成してみた。 ビジネス分野 「味の素」を亡くした金融市場:日経ビジネスオンライン 【やじうまPCWatch】タカラトミー、おしゃべりで爆誕 ぱっと見ではよく意味がわからない。味の素って何かアクシ…

chainerメモ9 保存するmodelに学習するコード等を含ませない

追記 この記事の内容は自分の勘違いだっただようで、不正確かもしれません。1.2以前のモデルを1.3で読み込むと ImportError: No module named 'chainer.functions.linear' となる問題。modelで絶対使うLinearのディレクトリ構造が chainer/functions/linear→…

RNNに数式を読ませて計算、さらに逆に数式をdecodeさせる

小手先ではRNNに文章を生成させることが厳しい事がわかってきたので、もう少し基礎から勉強。 "1 + 8"という文字列(str)をRNNに読ませて その結果を計算させて正解(9)を出力できるように学習して 今度は逆に答えが9になるような数式を出力 というものをやっ…

chainer1.3.0リリース

変更内容はこちら。pfnet/chainergithub.com今回の大きな目玉はCuPyの導入。バックエンドとして使われていたPyCUDAが自前のライブラリCuPyというものに置き換わったのでPyCUDAのインストールがもう必要ありません。scikit-cudaもいらなくなりまして、GPUで動…

シンプルなRNN/LSTMだけでまともな文章はできない

nlp

「プログラムが自動で文章を生成する」昔からこれにロマンを感じてる。 やってて面白い。暇つぶしになるし、副次的に色んなことの勉強になるし、もしかしたらいつかいいプログラムが作れてお金になるかもしれない、なんてぼーっと考えてる。今年に入ってから…

chainerメモ8 後からEmbedIDの数を増やしたい

functions.EmbedID(in_size, out_size) in_size (int) – Number of different identifiers (a.k.a. vocabulary size). out_size (int) – Size of embedding vector. RNN/LSTMでよく使うこれ。 EmbedID(単語の数, その単語のベクトル次元数) みたいに使う。 …

chainerメモ7 AttributeError: 'module' object has no attribute 'cupy’

ここ一週間ぐらいcupyが無くて先に進めないという声がチラホラ。cupyが無いって怒られるんだけどどうすればいいんだろ— ちゃんまつ氏 (@japapapapam) 2015, 8月 26 chainer君。gpuを使おうとすると動作しないね。cuda.cupyがないとか言われても、dependency…

ディープラーニング入門のための入門 その1

このシリーズは何なのか ディープラーニングとやらに興味あるけど何から手を付けていいかわからない そもそも機械学習って何なのかわからない 数式読めない 微分積分わからない 高校卒業してから数学を学んだ事が無い chainerのサンプルを試してみたけれど中…

Requests(python)で文字化けする場合

RequestsはシンプルなHTTPライブラリですがよく文字化けします。Shift_JISのサイトだと多めな印象。 html = requests.get("http://Shift_JISのサイト") print(html.encoding) #=> ISO-8859-1 なのでここを参考に [Python]requestsが正しくエンコード情報を返…

chainerメモ6 float64 != float32 エラー

chainer使ってて遭遇したエラー文をwebに上げて同じように遭遇した人がすぐ解決出来るようにしたいのでどんどん書いていく。 chainer.utils.type_check.InvalidType: Expect: in_types[0].dtype == in_types[1].dtype Actual: float64 != float32 よく遭遇す…

Kerasを使ってみた

TheanoベースのDeepLearningライブラリKerasを使ってみた。 2時間触った程度なのであまり有用なことは書けませんが。Keras Documentation fchollet/keras · GitHubモデルの設定をyaml等で記述しないといけないライブラリと違いpythonワンソースだけで完結す…

出力層にdropoutは必要なのか

NNでdropoutを入れると過学習を防いでくれて精度が高まる、と理解しているのだけど、最後の出力層(推論層)にもdropoutを入れるべきかどうかがわからないchainerのサンプルを見ると ptbサンプル(RNN/LSTM)は出力層にもdropout。 h1_in = model.l1_x(F.dropout…

cupy使ってみる

一ヶ月後にリリース予定のcupyバージョンのChainerを使ってみる。import cudnnのところでエラー。どうもCuDNN環境が無いと動かない模様でlibcudnn.soを入れたら動きだした。CuDNNのバージョンはv2。 cuda.init()が必要無くなってる。 というかこれがあるとエ…

chainerメモ5 AttributeError: 'GPUArray' object has no attribute 'T'

chainerをCPU環境でテストしながら実装してて、さあいざ本番のGPUで走らそうとするとこのエラーが出て悩んだ。ちゃんとcuda.init()もmodel.to_gpu()もしてるし、modelに投げるデータもto_gpu()してるはずなのに。 AttributeError: 'GPUArray' object has no …

RNNでのテキスト生成

nlp

最近RNNを使ってのテキスト生成で遊んでます。 色んなやり方があるのでメモ。呼び名は適当に命名しています。 ○はRNNに与える単語で、?が予想して出力する単語。 1.順生成 ○○○○○○?最も一般的。文章の時間軸に沿って単語を予測する。 2.逆生成 ?○○○○○○○文章を…

chainerメモ その4

CuPy 9月はじめに予定されている1.3.0で大型のアップデートが来る模様。[WIP] CuPy: Add and use a new GPU array backend with NumPy-compatible interface by beam2d · Pull Request #266 · pfnet/chainergithub.comchainerではGPU(CUDA)を使う際にPyCUDA/…

RNN/LSTMメモ 後で消すかも

LSTMでコマンドライン操作を予測させてみる - shi3zの長文日記d.hatena.ne.jp 多分これ学習の時点で失敗してる気がします。 http://d.hatena.ne.jp/shi3z/20150714/1436832305でもepochが進む度にperplexityが上がってるのはおかしいです。イマイチ中身を理…

chainerのサンプルコードを集めてみた(チュートリアルも追加)

(2016.1.21追記)最近あまりメンテナンスしてないので1.5以上のバージョンを使ってる人には役に立たなくなったかもしれません。(2015.12.15追記)当初はサンプルコードにリンクを貼っただけの記事でしたがチュートリアル等も含めたものに加筆中。また古くなっ…

chainer 1.1.0リリース

chainerの1.1.0がリリースされたようです。pfnet/chainergithub.com python3.4公式対応(多分3.3でも問題無いです) Caffe Reference Modelのサポートhttp://docs.chainer.org/en/latest/reference/caffe.html Visualization of Computational Graph http://do…