C/C++

【C++】Dropbox謹製のjsonパーサー「json11」が直感的で扱いやすい

json11は、ヘッダとソースの2ファイルから成るMITライセンスの軽量ライブラリです。 github.com パーサーオブジェクトに対して、obj["key1"]["key2"]と添え字にキーを指定した読み込みが可能で、直感的に記載できます。 読み込むjson { "id": 1001, "name": …

【機械学習】VC++で手書き数字認識のWindowsアプリを作ってみた 2/2

前回の記事↓では内部処理について簡単に記載しましたが、今回は手書き数字認識を実際に試してみます。 kuranabe.hatenablog.com Windowsタブレットで実行するとMFCアプリでも少し先進的に見えます(笑) それでは、各数字の認識結果を見ていきます。 ・0 斜め…

【機械学習】VC++で手書き数字認識のWindowsアプリを作ってみた 1/2

ここ最近のAI・機械学習ブームは飛ぶ鳥を落とす勢いですね。この分野におけるHello Worldは手書き数字認識らしいですので、作ってみました↓ 概要 3層の順伝播型ニューラルネットワーク(FFNN)・入力層…784次元 (28画素x28画素)・隠れ層…100次元・出力層…10次…

【MFC】リストビューをグレーアウトして無効表示させる

WindowsAPIのボタンを無効化すると灰色にグレーアウトしますが、リストビューを無効化してもグレーアウトしません。この記事ではグレーアウトさせる一つの方法を紹介します↓

【C/C++】MNISTの手書き数字の画像/ラベルデータをサクっと読み込む

機械学習で定番の数字認識では、サンプルデータとしてMNISTの手書き数字画像を使用する事が多いですね。PythonではMNIST画像を読み書きするライブラリがあるため手間いらずですが、C/C++では自力で読み書きする必要があるため、サンプルを紹介します。 なお…

【C/C++】ファイルパスに指定の拡張子(複数)が含まれるか安全にチェックする

ファイルパスの拡張子を単一の拡張子と比較する処理はネット上で散見されますが、ここではカンマ区切りの複数拡張子を安全に比較する処理を紹介します。 #include <stdio.h>#include <string.h>bool CheckExtension(const char *pszPath, const char *pszCmpExts){ // ファイル</string.h></stdio.h>…

【C/C++】macOS + Clang 環境でASLRを無効にしてコンパイルする

MacOSではLeopard以降、ASLRによりメモリ空間がランダム化されているため、gdbでスタックトレースする際に、実行毎にスタックのアドレスが変わり内容を追いにくい場合があります。 ここではASLRを無効にしてコンパイルする方法を記載します。 【確認環境】・…

【C/C++】system関数とCurlでグローバルIPを取得する

LinuxやMacで自機のIPアドレスを取得する場合、curlコマンドでinet-ip.infoを叩くとグローバルIPアドレスを取得できます。 $ curl inet-ip.info 123.456.234.321 Cのプログラムからはsystem関数でcurlコマンドを実行可能ですが、phpのexecの様に関数の戻り値…