studylog/北の雲

chainer/python/nlp

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…

cahinerメモ3

chainerドキュメント・チュートリアルのGPUで動かすところの最後がtypo? Using GPU(s) in Chainer — Chainer 1.0.1 documentationデータパラレルのところのこのコード optimizer.acumulate_grads(model_1.gradients) #accumulateのtypo optimizer.update() m…

文字を流し込むだけのRNNを試してみた

yusuketomoto/chainer-char-rnngithub.com こちらのchainerで実装されたRNNを試してみました。 RNNやLSTMの理屈や構造はさっぱりわかりませんが、連続して与えられた文字列から次の文字を予測するというもの。サンプルを見るとシェークスピアの文字列を構文…

chainerメモ2

苦戦中CPUでは学習が進むけどGPUだと進まない問題に遭遇。 model.W.dataで重みを見るとbackwordしても変わって無いのであれ?と思ってlossを見たらF.mean_squared_error()が返してるデータがCPUとGPUで何か違う。 #GPUはちゃんとcuda.to_gpuを通した前提で a…

chainerメモ その1

GPU/CUDAで動かしててこんなエラーが出たら ValueError: unsupported combination of input types terminate called after throwing an instance of 'pycuda::error' what(): explicit_context_dependent failed: invalid device context - no currently act…

python3でchainer(CUDA)が一部動いた

6.27現在ではpip3 install chainerでインストールされるものは対応されていない。 sudo pip3 install -e git+https://github.com/pfnet/chainer#egg=chainer-master これで最新版が入るのかな。 動いたサンプル MNIST CPU OK CUDA OK ptd CPU OK CUDA OK sen…

構築済みの日本語のWordEmbeddingベクトルがあればいいのに

nlp

と常々思っていたのだけど、探しても見つからなかった。 自分で作るのは結構時間がかかるし、その道の専門家の人がきちんと作ったものじゃないと精度が低いだろうし…。なんて思ってたらこんなのが。 word-vector-web-api/README.ja.md at master · overlast/…