目的・背景
複数の画像処理を行うにあたって, 引数と返り値の変数を一行一行書いていくと同じコードを複数の場所に書くことになったり, 一つのプロセス専用になったりと, 汎用性が低くなっていた.
そこで, 関数を一つのコンテナにまとめて, コンテナへ関数を与えて実行するような構造を作って, コンテナ次第で関数を楽に使いまわすことを考えた. pytorchのSequentialのような形を目指した. ( https://pytorch.org/docs/stable/generated/torch.nn.Sequential.html )
方法
環境として言語はC++ を選んだ.
pytorchの実装を見ると, コンテナと関数を同じ継承元クラスで作ることで, コンテナに入れる処理を共通化して実行しているようだ.
結果
github Link : (https://github.com/touka-aoi/Chain-of-Function)
関数クラスをインスタンス化してコンテナに渡し, 実行できるようにした
問題点
void*で関数の引数と返り値を定義しているが, 型チェックもしていないため. 予想している型ではないものが入ったらエラーになる. ModuleとFunctionで抽象化と具体化のバランスが取れず, どちらも抽象化に寄せることになった.そのため 上記のvoid*の問題が発生している.
テンプレートを使用してうまく実装出来る可能性はある
感想
もうちょっといいやり方がありそう
chatGPTがこういう構造考えてくれるから, この行為に対してあまり価値を感じない
結局使わなさそう
書けた時間に対する価値が低かったのでこれを書いた, 文章がいい感じじゃないから満足できないな
時間: 7h46m 満足度 : ★★