高速文字列解析の世界
高速文字列解析の世界のサポートページがなくなっていたのでインターネットアーカイブより。 web.archive.org
正誤表を探していたので、その個所を抜粋
訂正箇所
訂正・追記 (新しい版では既に修正されている場合があります。)
p.12 2.1章 文字列の記法:Σkについての例。例えばΣ={a, b, c}の時、Σ2 = {aa, ab, ac, ba, bb, bc, ca, cb, cc}。
p.18 2.5.1章「加算無限個」は「可算無限個」
p.19 2.5.2章「例えば,P(1100_2) = 110_2」は,「例えば,P(1100_2) = 100_2」
p.19 2.5.4章「r = x' / k」は,「r = (x' / k) + 1」。また「mを長さ|(k)2|ビット」は「mを長さ|(k-1)2|ビット」
p.20 2.5.6章 「lg p ビット」は 「-lg p ビット」
p.21 表2.2 100に対するゴロム符号化は「0000000000001011」
p.24 3.1章「<{lec}」は「{lex}」
p.28 3.2章「C[0, \delta]」は「C[0, \sigma]」、
「T_B = "a_1 r_1 d_1 c_1 a_2 ...」は「T_B = "a_1 r_1 d_1 $ c_1 a_2」、
「T_F = "a_1 a_2 ...」は「T_F = "$ a_1 a_2 ..."」、
「T_B = "ard$caaaaabb"であるが」は「T_B = "ard$rcaaaabb"」、
「T_F="$aaaaabcdrr"」は「T_F="$aaaaabbcdrr"」、
「T_B="a_1 r_1 d_1$ c_1 ...」は「T_B="a_1 r_1 d_1 $ r_2 c_1 ...」
p.31 補題3.7 証明中 「S{i+1}はyが1回以上繰り返された後にyより...」は「S{i+1}はyが0回以上繰り返された後にyより...」、同様に「S{j+1}はyが1回以上繰り返された後にyより...」は「S{j+1}はyが0回以上繰り返された後にyより...」
p.38 Algorithm2 3番目のfor文のCの添字「c」は「i」 また、同アルゴリズムの最後のfor文のT[i]への代入とpへの代入は順番が逆
p.44 4.2.1章 「 rank(B, i) として求めることができる」は 「 rank_1(B, i) として求めることができる」
Pythonシンタックス __call__
A()(a, b)
初見、A()
の戻り値とタプル(a, b)
の積かなと思ったが、積演算子がない。
A()
の引数を外側受け取る記述?そんなのあったっけ?と脳内検索。
A
のクラス定義みると __init__
, __repr__
, __call__
の特殊メソッドの実装のみ。
__init__
もしくは、__call__
になるかな。
__call__
メソッドあまり使ったことないのでググると、
クラスのインスタンス Instances of arbitrary classes can be made callable by defining a call() method in their class.
3. データモデル — Python 3.10.6 ドキュメント
インスタンスがcallableになる。
なので、
A()(a, b)
は、以下を端折った記法のようでした。
a = A() a(a, b) # __call__ が呼び出される
PyTorchインストール時のトラブル
PyTorchのソースからインストールの備忘録、、、
備忘録と言いつつ行った日からだいぶ時間経ってからの記録なので内容はおぼろげ(.zsh_historyを参考にしながら)記述。
DeepLearning系を触らずにいたら、`pytorch` が動かなくなってしまっていた。
RuntimeError: CUDA error: no kernel image is available for execution on the device
と、エラーが返ってきた。
CUDAのバージョンとpytorchのバージョンがあっていなのかな。
pip install torch==XXX+cuXXX`
でバージョン指定を探ったが、自分の環境に合ったものがなかった。
ので、ソースからインストールを行った。
git clone --recursive https://github.com/pytorch/pytorch cd pytorch python setup.py install
cmake がないといわれ、なぜか pip install で cmake をインストールしていた。
ninjaライブラリもインストール ( pip install ninja )
CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"} python setup.py install`
で、エラー
以下と類似した cmake でのエラー
Cmake 3.23 で起こる問題なので、ダウングレードしたらうまくいったよ
というヒント。 バージョンは `3.23` ではなかったが、それ以降の最新版だったので、
pip install cmake==3.22
で、3.23 の1つ前のバージョン3.22をインストール
再度、
CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"} python setup.py install
で、何かエラーがでて、再度、`CMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc`を追加して、インストール。
最終、
ninja, cmake==3.22をインストールし、以下のコマンドでインストール成功
CMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"} python setup.py install
マンカラ JS ver.
先日YouTubeのQuizKnockチャンネルさんで紹介されたマンカラ
面白そうだったのでJavaScriptで実装してみました。
駒は数字で表すようにしています。
クリックしたタイルの数字がその次のタイル以降に加算されていくまでは実装しました。
JS初心者でクラス使って実装しようとしたらthis問題と衝突したので諦めた。
qiita.com
Phoenix@Ubuntu
ベースは以下の記事を元にElixir + Phoenix インストールしてみた際の色々とトラブったので備忘録
PostgreSQLのインストール、起動で以下のエラーとなる。
解決方法は以下のページではうまく行かない。
環境は
- Ubuntu 18.04
- PostgreSQL 10.9
PostgreSQLのインストール時にデータベース起動には以下を実行と書かれてるので実行しても起動せず
/usr/lib/postgresql/10/bin/pg_ctl -D /var/lib/postgresql/10/main -l logfile start
logfileを確認
postgres: could not access the server configuration file /var/lib/postgresql/10/main/postgresql.conf: No such file or directory
- D のデータベース先にconfigファイルも必要なようなので
ln -s /etc/postgresql/10/main/postgresql.conf /var/lib/postgresql/10/main/
ln -s /etc/postgresql/10/main/conf.d /var/lib/postgresql/10/main/
と、シンボリックリンクを作成
再度、
/usr/lib/postgresql/10/bin/pg_ctl -D /var/lib/postgresql/10/main -l logfile start
waiting for server to start.... done
server started
起動成功
mydbデータベースの作成もうまくいく
mix phx.new hello OK
mix ecto.create 失敗
phx.new hello中の出力に
We are almost there! The following steps are missing:
$ cd hello
$ cd assets && npm install && node node_modules/brunch/bin/brunch build
と出るので、これを実行
mix locale.hex 成功
mix ecto.create 失敗
mix deps.get
mix ecto.create 成功
mix.phx.server 失敗
エラー出通りに
mix.exsを編集
- {:plug_cowboy, "~> 1.0"} の追記
- "test" --> test
再度、mix deps.get 成功
mix phx.server サーバー起動成功
keras one_hot
kerasのone_hot, 引数n(Size of vocabulary.)を大きくしないとコリジョンおこしちゃんですね。
"This is a wrapper to the hashing_trick function using hash as the hashing function."
https://keras.io/ja/preprocessing/text/
ですよね。