プログラミング

TorchScript. C++でpytorchを動かす

C++でpytorchを動かした際のメモ。 [pytorch]- tracingとscriptingについて[2]。traceは、example dataを入力しそのときに実行された計算のみを記録する。ifやloopがある場合は、scriptを用いる。 - torch.nn.ModuleListにアクセスする際は、indexを指定でき…

FP16で行列計算

とある行列計算をFBGEMMおよびQNNPACKで行った [1,2]。 - qnnpack (変数名は、コードに準拠)transposeの有無は指定できない。shapeはA_{mc, kc} x k_{nc, kc} + b_{nc} -> C_{mc, nc}のみを想定。vectorのtemplateの第2引数は、allocator。中国語!の解説記事…

タイムアウトを設定し、関数を実行する (C++)

void f() { auto self(enable_shared_from_this()); std::future<int> future = std::async(std::launch::async, [self]() { return g(); }); std::future_status status; status = future.wait_for(std::chrono::milliseconds(1000)); if (status == std::future</int>…

std::regexのメモ (その1)

C++で正規表現を扱う。数字と助数詞を取り出す疑似コード。input: リンゴ2個とイチゴ3個を買う。re: std::regex re( R"( (\D*?[^+-]*?)([+-]?\d[\d,]*[\.]?\d*)(個|匹|本)(.*?) )"); std::vector<std::string> match(std::string& text, std::regex const& re) { std::vec</std::string>…

スマホで音声認識

[1] で開発されているプロジェクトのコードを読み、動かす。kaldi、OpenFSTをarmv7でコンパイルし、aarを作成している。コア部分はC++ (kaldi)、front end interfaceはJava。Java側からswigでC++を呼び出している。予めHCLとGをcomposeせず、on-the-fly deco…

Kaldiをwindows上でコンパイルする

Compile Kaldi on Windows参考URL: https://github.com/kaldi-asr/kaldi/blob/master/windows/INSTALL.md 1. OpenFSTのコンパイル以下のプロジェクトをクローンし、slnをvisual studioでビルドする。https://github.com/kkm000/openfst.git 2. Kaldiのコンパ…

別スレッドで重いタスクを動かし、終了後にメインスレッドで値を受け取る。

タイトルにある動作をC++で実装する際、future/promiseを用いた。スレッド終了後、値の受け渡しができる。初めて使用したので、メモ。 std::futureを使うかboost::futureを使うかは、boost::is_ready()を使うかどうかで決める?std::futureのwait_for()でも…

Kaldiでwav fileを読み込む

Kaldiでwav fileを読み込む 1) kaldi formatの"wav.scp"を読み込む:SequentialTableReader<WaveHolder> reader(wav_rspeficier);for (; !reader.Done(); reader.Next()) { std::string key = reader.Key(); const WaveData &wave_data = reader.Value();} 2) wav file pa</waveholder>…

Tensorflow 2.0でモデルを作成し、Tensorflow Serving(Python/C++)で動作させる

モデルの学習:省略。tf.kerasを用いてモデルを構築する。tf.saved_model.save automatically determines a signature for the tf.keras.Model object. In the case of low-level API, see https://www.tensorflow.org/beta/guide/saved_model#exporting_cus…