pit-rayの備忘録

知識のあうとぷっと

WebDNNでブラウザで動くGANを実装した話

本日はQitaにありそうなタイトルを付けましたが、近年研究が盛んなGAN(Generative Adversarial Networks)をWebアプリにしてみようというだけです。今回は、完全に巨人の肩に乗っておりまして、先人たちの知恵を大いにお借りしています。こりゃ楽チン。では、…

DropConnectを理解したかった

はじめに 全結合ネットワーク(No-Drop) Dropout DropConnect DropoutとDropConnectの比較 はじめに ディープラーニングを行う上で、過学習(overfitting)対策は欠かせません。実際にディープラーニングを行う際、データセットを訓練データ、検証データ、テ…

【iPhone】復元(初期化)後にアクティベートできない

本記事の内容は、知恵袋で同様の質問をし、自己解決した内容です。 そのまとめを詳細に記事にすることで、アクセス数を稼ごうという次第です。iPhoneの調子が悪く、バックアップをしたうえで初期化を行うというケースは少なくないと思います。その際、iPhone…

【Python】二値分類はシグモイド関数を使う

今回はニューラルネットワークに関するトピックです。思うことがありましたら、どうぞお気軽にお寄せください。 早速ですが、本題です。 スコアの算出 多値分類 二値分類 確率の算出 多値分類 二値分類 まとめ 参考文献 ニューラルネットワークを用いて推測…

カラースキーム・テーマを他のテキストエディタ用に変換するツール【TeraPad, さくらエディタ対応】

今回は、テキストエディタの色設定を相互変換できるツールの紹介です。C++学習の副産物として生まれたツールですので、対応エディタが非常に少ないですが、コメント等で対応希望のエディタ等がありましたら実装を検討します。他にも対応OSやGUIの実装等の要…

【C++】ifstreamでUTF-8のBOMをスキップする方法(boost property tree)

今回は、前回とは逆で、UTF-8 with BOMを読み込むときにBOMを取り外す方法をご紹介します。例として、boostのproperty_treeでファイルを読み込む場合を考えます。 何故なら、property_treeではBOMに対応してないため、正常にデータを読み取ることができない…

【C++】ofstreamでUTF-8 with BOMを出力する方法

今回は、C++の標準ライブラリのfstreamのwrite関数を用いた、バイトオーダーマーク(BOM)の付け方をご紹介します。codecvtを用いた方法もあるようですが、私の環境ではうまくできなかったため、直接バイナリデータを書きこむ方法を用います。 バイトオーダー…

【Qt】複数のウィジェットを含むカスタムウィジェットを作る方法

今回は、Qtについての備忘録です。 前回と同様、学習のアウトプット目的で書いています。 ご指摘等ありましたら、コメントに書いていただけると幸いです。動作環境は以下の通りです。 【OS】Windows10 64bit 【CPU】Intel core i5-4590 【Qt】5.11.2 64-bit …

【Qt】CDBをデバッガとして利用する方法

今回は、QtにCDBをデバッガとして設定する方法を解説します。Qtでデバッグ開始時に以下のようなエラーを吐かれてデバッグができないケースがあります。 The selected debugger may be inappropriate for the inferior. Examining symbols and setting breakp…

【C/C++】初心者でも簡単に使えるゲーム用タスクシステムライブラリ

今回はゲーム用のタスクシステムをご紹介します。タスクシステムは主に弾幕系シューティングゲームやストーリー系のゲーム全般に用いられています。タスクシステムを用いることで、処理する関数の順番を決めたり、途中で特定の関数をストップできたりします…

タスクシステムライブラリ tasksyslib リファレンス

C/C++対象のタスクシステムライブラリtasksyslibのリファレンスです。 GitHubでダウンロードする 規約等をみる InitTaskSys関数:タスクシステムの初期化 RegisterNewTask関数:タスクの登録 SetTaskParameter関数:タスクの設定 IsActivateRegdTask関数:タ…

インライン関数はヘッダファイルで実装する

インライン関数はC++やC99以降のC言語でサポートされています。 インライン関数はマクロ関数のようにオーバヘッドを避けることができます。インライン関数の書き方の例はこのようになります。 inline int Five() { return 5 ; } マクロ関数で実装する場合は…

【C言語】解放後のポインタにNULLを代入するべき【ダングリングポインタ】

今回題材とするのはダングリングポインタ(dangling pointer)です。 ここで出てくるdanglingというのはぶら下がるという意味で、ポインタがどこのメモリを指しているのかわからない状態を指します。ダングリングポインタは攻撃ができる脆弱性につながる可能性…

【C言語】memcpyとmemmoveの違い

本日はmemmoveとmemcpyの違いが気になり、調べていました。 memmoveとmemcpyはどちらもアドレスをコピーする関数(string.hに定義)です。早速ですが本題に入ります。 代表的な違いを考えると、オーバーラップ(overlap)があげられます。 この二つの関数がオ…

【C言語】malloc()+memset()とcalloc() ゼロクリアする場合における違い

今回は開発していて気になったことがあったのでググってみました。 まず、今回気になったことは malloc()+memset()によるゼロクリアとcalloc()によるゼロクリアは何が違うのだろうか ということです。 まず、それぞれの関数の定義等を見ていきましょう。 mal…