nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

ドメイン駆動設計学習

はじめに ドメイン駆動設計学習内容を記録します。 リンク 役割駆動設計で巨大クラスを爆殺する - Qiita

mnist手書き数字画像データ学習モデル活用でjpeg画像を予測します [Python]

はじめに 手書き文字の認識をNeuralnetworkを用いて行います。 Kerasから手書き文字のデータをダウンロードして、そのデータを用いて、NeuralnetworkのTrainingを行い、その後に下記のnumber_fileをTest dataとして数字の認識を実施します。 コード例 from k…

GraphViz'sで可視化する (Windows)

はじめに Windowsで、GraphViz'sで可視化する場合は大変です。 環境 Python 3.6 手順 (1) Anaconda Promptで、以下のようにgraphvizとpydotをインストール conda install graphviz pip install pydotplus (2) graphvizを公式ホームページからインストールし…

TensorFlow GPU導入 [Windows 10] [tensorflow-gpu : version 1.8.0] [GPU : GEFORCE RTX 2060]

本記事の前に Windows環境のTensorFlow GPU導入方法は、 以下の国立研究開発法人 産業技術総合研究所 安全科学研究部門様の記事がとてもわかりやすいです。 WindowsでKerasを用いたDeep Learning開発環境を整備する | 産総研:安全科学研究部門– 持続可能な…

古いマザーボード(Z77X-UD3H)に新しいグラフィックボード(GEFORCE RTX-2060 GAMING Z )を搭載してみた

はじめに 高速なGPUが欲しかったので、古いマザーボード(Z77X-UD3H)に新しいグラフィックボード(GEFORCE RTX-2060 GAMING Z )を搭載してみました。 新しいグラフィックボードを起動するのに、一晩かかりましたので、展開します・・・。 手順 Z77などの70番台…

単純パーセプトロンの学習

はじめに 単純パーセプトロンを学習していきます。 パーセプトロンで論理演算のANDを実装することを考えます。 x1,x2:入力層 y:出力層 w1,w2:入力層と出力層のユニット(ニューロン)の結合の強さを表す係数 (結合係数) b:バイアス θ:ステップ関数 ち…

ディープラーニング学習

はじめに ディープラーニング学習に役立ちそうなページをまとめます。 無から始めるKeras https://qiita.com/Ishotihadus/items/6ecf5684c2cbaaa6a5ef ディープラーニング∞本ノック作ったった https://qiita.com/yoyoyo_/items/cd5b859341106c3b52f9

Jupyter Notebookの学習まとめ

はじめに Jupyter Notebookの学習をまとめた記事です。 Qiitaに素晴らしい記事がありましたので、展開します。 Jupyter 知っておくと少し便利なTIPS集 - Qiita Jupyter Notebookで時間を計測したい %%timeを使うとよいです。ただし、使用するためにはtimeモ…

scikit-learn学習

はじめに 機械学習で学んだこと、躓いたところをメモします。 grid_search 最適なパラメータの探索を行うメソッドです。 探索を行いたいパラメータをセットしておくと、最適なパラメータを見つけ出してくれます。何も考えずにSVMとか動かすと精度はあまり良…

VSCodeでPythonをデバッグしたい

はじめに Windows環境で、Visual Studio CodeでPythonをデバッグしたいと思います。 環境 Windows 10 (version 1809) Python version : 3.7.1 IDE : Visual Studio Code Version : 1.31.1 方法 Visual Studio Codeをインストールします Pythonをインストール…

Chain of Responsibility [C#]

Chain of Responsibility Chain-of-responsibility パターン, CoR パターンは、オブジェクト指向設計におけるデザインパターンの一つであり、一つの コマンドオブジェクトと一連の 処理オブジェクトから構成される。 各処理オブジェクトは、処理できるコマン…

ソフトウェア設計全般

はじめに ソフトウェア設計全般について学習する記事です。 UMLモデリング 凝集度をチェックしましょう 凝集度とは、情報工学においてモジュール内のソースコードが特定の機能を提供すべく如何に協調しているかを表す度合いです。 凝集度の高いモジュールは …

Django学習 (トラブルシューティング)

はじめに DjangoのWebアプリケーション作成時につまったところを記載します。 開発環境 Windows 10 (version 1809) Python version : 3.7.1 Django version : (2, 1, 7, 'final', 0) IDE : Visual Studio Code ディレクトリ構成 プロジェクトの中に一つのア…

PyCharmのトラブルシューティングまとめ

はじめに PyCharmで、躓いたところをまとめておく記事です。 環境 Windows 10 (version : 1809) PyCharm 2018.3.4 (Professional Edition) No R interpreter defined 問題 PyCharm上で、機械学習をしようとしたら、以下のエラーメッセージが出る・・・。 No …

Python 仮想環境で楽々モジュール管理 [Windows]

はじめに pythonで、モジュール管理が大変だと思いませんか? 仮想環境を使用することで、他の環境に影響を与えずに、モジュールをインストールすることが可能です。 環境 OS : Windows 10 (version : 1809) 仮想環境の作成と実行 仮想環境は以下のコマンド…

Django学習 (Djangoサーバー作成とDjango上でアプリケーション実行)

はじめに Djangoの環境を構築するための学習内容を記載します。 環境 Windows 10 (version 1809) Python version : 3.7.1 Django version : (2, 1, 7, 'final', 0) 注意点 現在どのディレクトリ階層にいるか、コマンド実施前に必ず確認しましょう (コマンドc…

Python3の関数アノテーションの記載方法

はじめに C++やC#の異なり、Pythonのコードは、関数に引数や戻り値の型を書かなくても問題ありません。 ただし、あとのコード見やすさを考慮すると、関数アノテーションを書いたほうがいいと思います。 関数アノテーションの書き方 関数の引数の型の場合 関…

TeXで綺麗な数式を書きたい

はじめに ブログに数式を乗せたい場合があると思います。そのときは、TEXを使用すると、きれいに表示できます。 hatenaブログの場合 K-means法 <div align="center">[tex: \begin{align} min=\sum_{i=1}^n\sum_{x \in X_i}||x - \mu||^2 \end{align} ]</div> Qiitaの場合 Qiitaの場合で…

抽出・変換・統計をC++テンプレートメソッドで解く [C++]

C++

はじめに 抽出・変換・統計をC++テンプレートメソッドで解きたいと思います。 std::accumulateとラムダ式 C++テンプレートメソッド C++17畳み込み式、単項右畳み込みでコンパイル時に値を計算 #include <iostream> #include <algorithm> //copy_if, for_each, transform #include <vector></vector></algorithm></iostream>…

templateクラスを用いて、C++で抽出・変換・集計処理を行います

C++

はじめに templateクラスを用いて、C++で抽出・変換・集計処理を行います。 #include <iostream> #include <algorithm> //copy_if, for_each, transform #include <vector> #include <array> #include <numeric> //iota, accumulate #include <cassert> using namespace std; void print_num(int num){ std::cout<< </cassert></numeric></array></vector></algorithm></iostream>…

初期化構文 [C++17]

C++

初期化構文 #include <iostream> using namespace std; int main(void){ // Your code here! int test = 2; if (int x = 2; x > test) { std::cout << "xは変数testより大きい" << std::endl; } else if (x == test) { std::cout << "xは変数testと同じ値" << std::end</iostream>…

C++で抽出・変換・集計処理を行う

C++

はじめに JavaやC#の関数型プログラミングをC++で行ってみました。 数列から、奇数を抽出して、その結果に対して2倍し、統計します。 コード #include <iostream> #include <functional> #include <algorithm> #include <vector> #include <numeric> using namespace std; void print_num(int num){ std::cout<<</numeric></vector></algorithm></functional></iostream>…

std::functionについて [C++]

C++

はじめに functionクラステンプレートは、パラメータの型リストArgTypes...、戻り値の型Rに合致する、あらゆる関数ポインタ、関数オブジェクト、メンバ関数ポインタ、メンバ変数ポインタを保持できるクラスです。 使用例 #include <iostream> #include <functional> using namespac</functional></iostream>…

ラムダ式攻略 [C++]

C++

はじめに 「ラムダ式(lambda expressions)」は、簡易的な関数オブジェクトをその場で定義するための機能です。 この機能によって、「高階関数(関数を引数もしくは戻り値とする関数)」をより使いやすくできます。 仕様 構文 [キャプチャリスト](パラメータリ…

Pythonの勉強サイトまとめ

はじめに Pythonを勉強する上で役に立ちそうなサイトを紹介します。 機械学習 クラスタリングの様子を視覚的に見ることが出来るサイト。クラスタリングのイメージがつかみやすくなると思います。 K-means 法を D3.js でビジュアライズしてみた - てっく煮ブ…

コピーコンストラクタと代入演算子の禁止方法

C++

はじめに C++11の文法のdeleteを使うことで、クラスのインスタンスのコピーや代入を禁止することができます。 #include <iostream> class Person { public: // 参照 const std::string m_name; int m_age; Person(const std::string name, int age) : m_name(name), m_</iostream>…

const メンバ変数がいるときの代入演算子

C++

はじめに 自分で作成したクラスのメンバ変数が、constメンバ変数であった場合、デフォルトの代入演算子では正しく代入できません。 そのため、代入演算子を自分で実装します。 例えば、nameとageというメンバ変数があったとしまして、ageだけconstメンバ変数…

メンバイニシャライザ(初期化リスト)[C++]

C++

はじめに メンバイニシャライザ(初期化リスト)を使うと、クラスのメンバ変数を代入ではなく、初期化することができます。 コンストラクタの定義 X::X() : メンバ変数名A(初期化子A), メンバ変数名B(初期化子B), ... { } 厳密には、メンバ変数1つ1つの初…

依存性逆転の法則の学習

依存性逆転の原則 (Dependency Inversion Principle) 依存関係逆転の原則は柔軟なシステムの作り方を教えてくれます。 最も柔軟なシステムは、ソースコードの依存関係がインターフェイスだけを参照している場合です。 上位クラスの具象クラスと下位クラスの…

Pythonでモジュールをインポートするときの構文

はじめに 関数の定義と関数を利用する処理を同じファイルに記述すると、コード行数が膨大になります。 また、関数を再利用しにくいです。 そこで、関数の定義を別ファイルに分けて、関数の定義(モジュール)を読み込む(インポート)方法をとります。 使用する…