nprogram’s blog

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

デバッグ技術

はじめに ソフトウェア評価時では、デバッグは必要不可欠です。 以下のような手順で行うと思います。 手順 バグを記録する (バグレポートを書く) バグを再現する バグを分離する (バグ発生原因を特定するために必要) バグを修正する バグを記録する バグ内容…

Nullチェックを削除する方法 (NullObjectパターンとNull合体演算子)

はじめに Nullチェックを削除する方法はいくつかあります。最適な方法を使用してください。 NullObjectパターン オブジェクト指向プログラミングが使えれば、どの言語でも実現可能 Null合体演算子 言語仕様にNull合体演算子があれば可能 その他の方法 Javaの…

switch文を爆散

はじめに コードのあちこちに同じようなswitch文処理が書かれている場合があります。 機能追加・修正するたびに変更が必要なswitch文処理を探してコード修正しなくてはなりません。 このようなswitch文処理を見つけたら、ポリモーフィズムが使うことで、リフ…

巨大クラスをクラス抽出で爆散

はじめに 巨大クラスを爆散したいときがあります。 その場合は、クラス抽出が便利です。 書籍 新装版 リファクタリング 既存のコードを安全に改善する Martin Fowler [著] 手順 (1) クラスの責務を切り出す方法を決める (2) 切り出された責務を記述する新た…

リファクタリング入門

はじめに 以下の書籍を読んでリファクタリングを学習します。 書籍 新装版 リファクタリング 既存のコードを安全に改善する Martin Fowler [著] リファクタリングの定義 外部から見たときのふるまいを保ちつつ、理解や修正が簡単になるようにソフトウェアの…

JavaScript学習用リンク記事

はじめに JavaScript学習用の記事です。 2019年5月時点 JavaScript初心者が参考にしていいモダンJavaScript解説サイト2つ - Qiita リンク js-primer これからJavaScriptに入門したい人が、ECMAScript 2015以降をベースにして一からJavaScriptを学べる本です。…

UnicodeからUTF-8に変換する方法 [C++] [MFC]

はじめに UnicodeからUTF-8に変換する方法を調べたので、記録します。 Convert Unicode (utf-16) CStringW to utf-8 CStringA CStringA ConvertUnicodeToUTF8(const CStringW& uni) { if (uni.IsEmpty()) return ""; // nothing to do CStringA utf8; int cc…

仮説検証学習

はじめに 仮説検証を学習していきたいと思います。 (1) どうなりたいのか(狙う結果) (2) 何によって確かめるのか(指標)? (3) そのために何をするのか? (4) なぜ狙う効果が得られるのか? ポイント 仮説検証の内容は、具体的な数値にしましょう 各項目で、…

TensorFlow Object Detection APIをWindowsで使ってみた

はじめに 以下のサイトを見てTensorFlow Object Detection APIをWindowsで使ってみようと思います。 TensorFlow Object Detection APIは、TensorFlowを利用して、画像に写っている物体を検出するためのフレームワークです。 インストール手順・実行方法は、S…

リカレントニューラルネットワーク学習 [Python][Keras]

はじめに リカレントニューラルネットワーク学習を学習します。 リンク https://www.infiniteloop.co.jp/blog/2018/02/learning-keras-07/

matplotlib基礎

はじめに matplotlibでグラフを書きます。 図を描いてみる import matplotlib.pyplot as plt plt.style.use('seaborn-whitegrid') import numpy as np %matplotlib inline # numpy.linspace(start, stop, num = 50, endpoint = True, retstep = False, dtype…

C++で関数型プログラミング (filter関数の実装)

C++

はじめに C++で、関数型プログラミングでいうfilter関数(抽出の処理を行う関数のこと)を使う場合は、以下のテンプレート関数を使うといいです。 copy_if remove_copy_if コード例 以下のコード例では、ラムダ式と挿入イテレータが使用されています。 挿入イ…

Keras学習入門

はじめに 公式ドキュメントを読みましょう。 Home - Keras Documentation サンプルもあります。 https://github.com/keras-team/keras/tree/master/examples 参考にした記事 無から始めるKeras - Qiita 作りたいもの 適当な5次元のデータ配列を入力すると、…

Pythonで画像データをFlickerで取得する

はじめに Pythonで画像データを取得してみたいと思います。 flickr の画像取得は、flickr API を使用します。 flickrのAPIは以下に記載されています https://www.flickr.com/services/api/ APIを使用して画像情報を取得してみる flickrのAPIを使用して画像の…

ドメイン駆動設計学習

はじめに ドメイン駆動設計学習内容を記録します。 リンク 役割駆動設計で巨大クラスを爆殺する - 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 2600]

本記事の前に 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…