Tuesday, January 30, 2024

戯言

昼夜問わず飲みまくってたせいでここ2週間ほど曜日感覚も昼夜の感覚も失って過ごしていた。

これはこれで楽しかったが、こういう刺激的な生活ばかりしてられないので、そろそろ人間界に戻ろうかなと思っている。が、そもそも戻る場所がない。

というわけで、新しく生活スタイルを決めることになる。今は自由にスタイルを決めれる身なので、どんなスタイルが良いか悩んでいる。

こういうときは先人から学ぶのが吉だと思う。普通の社会生活をしている人になっておこう。

まず私の頼るところはデールカーネギーの著書である。言わずも知れた、人間社会のど真ん中を行くための本である。とはいえ、まぁ、生活について書いていないのは知っている。なんの参考にもならない。

なので、次に著者本人を参考にしようと試みる。どんな奴だったのかよく知らないので、ググってみたが、髪型がツーブロックっぽいことしかわからない。なんなんだ、この人。

ほかには数学者や作家が思いついたが、そもそも人間的に碌でもないやつらなので参考にできない。そもそも私は普通っぽいスタイルに憧れている。

と、この辺で、普通を本にして出版するなどありえないので、そもそも参考にしようとしたものが悪いと気が付いた。

なので、ストレートに普通の生活スタイルをググってみた。

朝起きて、3食食べて、適度に運動して、夜そこそこに寝るという具合のことが出てくる。

そうか、2時3時まで遊んでる時点でこれから外れてて、さっさと寝ろということか。まぁいきなり生活を変えるのは困難だが、目標が決まれば目指すことは可能である。これからはこういう普通っぽい生き方をしていこうと思う。クソつまんない気がするけど、飽きたらまた別のスタイルを探そうと思う。

Wednesday, January 3, 2024

libtorchでis_avaiable()がFalseを返すのを直したときのこと

Windowsで機械学習で有名なpytorchのc++ apiであるlibtorchを使い始めたが、たびたび???となることにぶつかる。

直近で当たったのが、ライブラリのバージョンやドライバーなどちゃんと整えたうえで、CUDAの利用が可否か問う関数、

torch::cuda::is_available()

で、0,falseが返ってきて、なぜか使えないと判定されたことである。

念のために、pythonで、

import torch

torch.cuda.is_avaiable()

を投げると、Trueで返ってくる。

つまり、torch的にも計算機の環境としてはCUDAが整っているのに、Libtorchを通した時におかしいという状態である。

考えてみると、これはDLLが別のものを指している可能性があって、Libtorchのフォルダ内のdllを先に参照できていないことが示唆される。

ということで、システム環境変数のPathを見てみると、libtorch/libが通っていないので、先頭に追加した。

結果、ちゃんと1, Trueが返ってきて、かつ、

device_type = torch::kCUDA;

torch::Device device(device_type);

model->to(device);

cout << "Is module CUDA? " << model->parameters()[0].is_cuda() << endl;

によって、GPUへの転送もうまくいっていることを確認できた。