【NeRF】動画から点群・メッシュ・任意視点動画を生成してみる 📅 2024/1/18 · ☕ 4 min read NeRFを使えば,点群・メッシュ・任意視点動画が作れるのでやってみた 今回は愛飲するRedBullを被写体にしてみるヨ! 任意視点動画 (GIF版) 任意視点動画 (動画版) Your browser does not support the video tag. 点群 NeRFとnerfstudioについて簡潔に説明 ボリュームレンダリング ある点 $x$と方向 $d$を入力として $(c,\sigma)$を出力 ... #論文 #機械学習 #PyTorch #CV
【k8s・DDP】クラスタ上でのtorch.loadが遅い 📅 2023/9/17 · ☕ 3 min read 概要 巨大なembeddingをチャンクで外部に保存し,DDP(Distributed Data Parallel)を使った学習時に各GPUで読み込みたい そんなときtorch.load(path, map_location=f"cuda:{rank}")にかかる時間の分散が大きい場合がある 前提: torch.loa ... #k8s #PyTorch #post
【PyTorch】「CUDA error: device-side assert triggered」 解決の手引き 📅 2022/10/23 · ☕ 4 min read はじめに PyTorchにて, “RuntimeError: CUDA error: device-side assert triggered"というエラーに出くわすことがある ネットに転がってるモデルで発生すると特に厄介である (自分が作った沼ではないので…) またMAEでのマスク処理のような, テクニカルな処理を行う場合などにも頻発 再現性が取れず, 出力されるエラー内容も二転三転. 一定 ... #python #PyTorch #post
PyTorch 高速化 📅 2022/4/22 · ☕ 1 min read https://qiita.com/sugulu_Ogawa_ISID/items/62f5f7adee083d96a587#31-ampautomatic-mixed-precision機能について ... #PyTorch #post
Automatic Mixed Precision 📅 2022/4/22 · ☕ 1 min read float16とfloat32を混ぜて(Mixed)計算することで, GPUのMEM使用率を抑えることができる 計算スピードも幾分速くなるらしい 略してamp https://qiita.com/Sosuke115/items/40265e6aaf2e414e2fea https://tawara.hatenablog.com/entry/2021/05/31/220936 ... #PyTorch #post
torch.view 📅 2022/4/8 · ☕ 1 min read 同じ順序でメモリ上に展開されてないとダメだから注意 1 2 3 4 >>> torch.t(x).view(-1, 2) Traceback (most recent call last): File "<stdin>", line 1, in <module> RuntimeError: invalid argument 2: view size is not compatible with input tensor's size and stride (at least one dimension spans across two contiguous subspaces). Call .contiguous() before .view(). at /Users/soumith/code/builder/wheel/pytorch-src/aten/src/TH/generic/THTensor.cpp:237 1 2 3 4 5 6 x = torch.Tensor([[[ 1., 5., 9.], [ 2., 6., 10.], [ 3., 7., 11.], [ 4., 8., 12.]]]) x = x.unsqueeze(0) print(x.transpose(-1,-2).view(1,-1,2)) ↑ これだとメモリ上に展開されてないからダメ 1 2 3 x = torch.Tensor([[1,2,3,4],[5,6,7,8],[9,10,11,12]]) x = x.unsqueeze(0).transpose(-1,-2) print(x.transpose(-1,-2).view(1,-1,2)) ↑こっちだとOK ... #PyTorch #post
torchのテンソル積 📅 2022/4/1 · ☕ 1 min read 三次元 $\times $三次元の行列 1つ目をバッチサイズとして, バッチ単位で行列積 torch.bmm 4次元 $\times $3次元の行列 (j×1×n×m) と (kxm×p)の積は(j,k,n,p)となる バッチなど、行列以外の次元は、ブロードキャストされる。そのため、行列以外の次元はブロードキャストできるものでなければならない。例えば、tensor1が(j×1×n× ... #PyTorch #post
torch.bmm 📅 2022/4/1 · ☕ 1 min read バッチサイズ単位で行列積 @も同様 https://pytorch.org/docs/stable/generated/torch.bmm.html#torch.bmm ... #PyTorch #post
PyTorchとメモリ 📅 2022/3/29 · ☕ 1 min read 必要なメモリ量 必要メモリ量(byte) = (ニューロンの数 × Batch Size + パラメータ数) × 2 (data & grad) × 4(byte) https://nori-life-log.com/nnの学習で必要なgpuメモリを算出する 重みを固定(freeze) 1 2 3 # freeze all layers for param in model.parameters(): param.requires_grad = False ... #PyTorch #post
einsum 📅 2022/3/18 · ☕ 1 min read アインシュタインの縮約記法 テンソル積を書くと大量の $\Sigma$が出てきてうざい なので, $\Sigma$を省略しよう, というのが事の始まり $\sum_{j} a_{i,j}b_{j,k}$ なら ij,jk → ik プログラム的に考えれば, 単純にfor を外しただけ 例えば ドット積 z[i,j](https://scrapbox.io/yuwd/i%2Cj) += x[i,j](https://scrapbox.io/yuwd/i%2Cj) * y[i,j](https://scrapbox.io/yuwd/i%2Cj) np.einsum("ij,ij->ij", x, y) 内積 z[j,k](https://scrapbox.io/yuwd/j%2Ck) += x[j,i](https://scrapbox.io/yuwd/j%2Ci) * y[i,k](https://scrapbox.io/yuwd/i%2Ck) np.einsum("ji,ik->jk", x, y) 軸の入れ替えなどでも使える y = torch.einsum('nchw->nhwc', y).detach().cpu() 実際は遅いからやめたほうが良さそう ... #PyTorch #post
重みの初期化 📅 2022/3/12 · ☕ 1 min read nn.init.hogehoge() で初期化できる 例 nn.init.xavier_uniform_(ln.weight) # Xavierの初期値 PyTorchの場合, デフォルトはHe ... #機械学習 #PyTorch #post
RuntimeError: reciprocal_cuda not implemented for ComplexHalf 📅 0001/1/1 · ☕ 1 min read 1 C = C * (1. - dtA/2).reciprocal() * dt.unsqueeze(-1) # or * dtA / A ComplexHalf = torch.complex32のこと ComplexHalfにはreciprocal_cudaが実装されていないらしい 逆数を求める際の精度の問題? AMPやfp16で計算しようとすると,本来64bitのcomplexで計算されるはずの項が32bitになって,逆数が計算できなくなる ... #PyTorch #Computer #post