ポエム1 : 関数をスタッキングしたかった

toukaaoi
·

目的・背景

複数の画像処理を行うにあたって, 引数と返り値の変数を一行一行書いていくと同じコードを複数の場所に書くことになったり, 一つのプロセス専用になったりと, 汎用性が低くなっていた.

そこで, 関数を一つのコンテナにまとめて, コンテナへ関数を与えて実行するような構造を作って, コンテナ次第で関数を楽に使いまわすことを考えた. pytorchのSequentialのような形を目指した. ( https://pytorch.org/docs/stable/generated/torch.nn.Sequential.html )

方法

環境として言語はC++ を選んだ.

pytorchの実装を見ると, コンテナと関数を同じ継承元クラスで作ることで, コンテナに入れる処理を共通化して実行しているようだ.

結果

github Link : (https://github.com/touka-aoi/Chain-of-Function)

関数クラスをインスタンス化してコンテナに渡し, 実行できるようにした

問題点

  1. void*で関数の引数と返り値を定義しているが, 型チェックもしていないため. 予想している型ではないものが入ったらエラーになる. ModuleとFunctionで抽象化と具体化のバランスが取れず, どちらも抽象化に寄せることになった.そのため 上記のvoid*の問題が発生している.

    • テンプレートを使用してうまく実装出来る可能性はある

感想

  1. もうちょっといいやり方がありそう

  2. chatGPTがこういう構造考えてくれるから, この行為に対してあまり価値を感じない

  3. 結局使わなさそう

  4. 書けた時間に対する価値が低かったのでこれを書いた, 文章がいい感じじゃないから満足できないな

時間: 7h46m 満足度 : ★★