プログラミング

プログラミング

【C++】EigenのMatrixクラスにOpenCVのMatクラスを入力する方法【Mapクラス】

EigenのMatrixクラスに配列を入力したい場合があると思います。今回はEigen::Mapクラスを使用してEigenのMatrixクラスに配列の値を入力する方法と、それを応用してOpenCVのMatクラスとEigenのMatrixクラ...
プログラミング

【Python】PytorchモデルからONNXモデルへの変換方法【Mask R-CNN】

PythonでDeep Learningを学習させる場合はPytorchを使用される方が多いと思いますが、Pytorchで学習させたモデルをPytorch以外のフレームワークで推論させたい場合があると思います。そんな時に便利なのがONNXと...
プログラミング

【OpenCV】cv::Matとunsigned char*の相互変換

OpenCVのcv::Matクラスとunsigned char*の相互変換についてです。画像の入出力にOpenCVを使って画像処理自体は配列を直接操作したい場合があると思います。そのため、今回はcv::Matクラスと配列(符号なし8bitデ...
プログラミング

【C++】EigenのMatrixクラスの初期化方法

今回はEigenのリファレンスを参照してMatrixクラスの初期化方法についてまとめました。1. MatrixクラスMatrixクラスは行列を格納するためのクラスで、クラステンプレートとして以下のように定義されています。class Eige...
プログラミング

【C++】Mnistデータセットを読み込みEigenで扱う

Mnistは手書き数字画像とラベルデータをまとめたデータセットで機械学習の性能評価などによく利用さます。Deep Learningの入門書ではPythonで扱われることが多いのですが、今回はC++で読み込みEigenで扱う形式に変換してみた...
プログラミング

【C++】ソフトマックス関数を実装してみる

今回はニューラルネットワークの出力層でよく使われる「ソフトマックス関数」を実装してみる。1. ソフトマックス関数ソフトマックス関数は以下の式で表される。\この式は出力n個に対してk番目の出力\(y_k\)を求めています。ソフトマックス関数は...
プログラミング

【C++】シグモイド関数を実装してみる

「ゼロから作るDeep Learning」という本を買ったのでこの本を参考に勉強していこうと思います。Pythonのソースコードもついているので参考にします。1. 活性化関数ニューラルネットワークは層を重ねることで非線形の問題も解くことがで...
プログラミング

【C++】Gnuplotを使ったグラフ描画機能をクラス化する

今後のためにグラフ描画用の関数をクラス化して他のプログラムに流用できるようにしておきたい。1. ヘッダーファイルヘッダーファイルはこちら。「classGnuplot」クラスとしてグラフ描画機能をまとめる。主な機能としては以下の通り。Gnup...
プログラミング

【C++】Gnuplotと連携してグラフを描画したい

Pythonであればmatplotlibなどグラフを描画してくれる便利なライブラリがあります。一方、C++でグラフを描画しようと思うとCSVなどにデータを出力してExcelなどで確認することになります。そこでGnuplot使ってC++でグラ...