blog気ままに、プログラミングのトピックについて書いていきます2019-05-02仮説検証学習はじめに仮説検証を学習していきたいと思います。APIをWindowsで使ってみようと思います。APIは、TensorFlowを利用して、画像に写っている物体を検出するためのフレームワークです。Blog様のブログが素晴らしい記事を書いていますので、そちらを参考にするといいと思います。(ただし、注意点にも記載しているTensorFlowのバージョンには注意)https://www.sejuku.net/blog/56695注意点TensorFlowのバージョンはv1.12以上である必要があります。新しいTensorFlowバージョンでなければ動かないため、注意が必要です。Versionでは、以下のように正しく動きません。v1.12.*.本記事では以下の記事を見ながら作業を進めていきます。QiitaProtobufのコンパイルができない問題については、以下のサイトに解決策が書かれています。0.092sOK早速使ってみるサンプルノートブックファイルは以下にあります。上記のサンプルノートブックファイルが参照する画像ファイルは以下のフォルダーにあります。(任意のフォルダー)\research\object_detection\test_images私の環境下では、以下のファイルにサンプルコードの画像ファイルがありました。Kerasはじめにリカレントニューラルネットワーク学習を学習します。[Python][Keras]広告を非表示にするコメントを書くもっと読む2019-04-22matplotlib基礎Pythonはじめにmatplotlibでグラフを書きます。生成する配列(ndarray)の要素数を指定。生成する数列において、stopを要素に含むかどうかを指定。Trueなら含み、Falseなら含まない。生成された配列(ndarray)の後に公差を表示するかどうかを指定。Trueなら表示し、Falseなら非表示。出力された配列(ndarray)のデータ型を指定。指定がない場合、データ型はfloat。figure内の枠の大きさとどこに配置している。'numpy.ndarray'>複数の図を描いてみるmatplotlib.pyplot.subplotを使って規則正しくグラフを書きます。2×2で4枚のグラフを描きます。右方向、下方向へいくにしたがい値が大きくなります。右下plt.subplot(2,2,4)plt.plot(x,y4)matplotlib.pyplot.subplotグリッド上に規則正しくグラフを配置する場合はsubplotメソッドを使います。分割され、プロット番号の位置に座標軸が作成されます。np.linspaceNumPyのnp.linspaceは、線形に等間隔な数列を生成する関数です。同様の数列をnp.arangeで生成することもできますが、np.linspaceを使用したほうがコード量を減らすことができます。数列の始点を指定します。数列の終点を指定します。(省略可能)初期値50生成する配列(ndarray)の要素数を指定します。(省略可能)初期値True生成する数列において、stopを要素に含むかどうか指定します。Trueなら含み、Falseなら含みません。(省略可能)初期値False生成された配列(ndarray)の後に公差を表示するかどうか指定します。Trueなら表示し、Falseなら非表示です。(省略可能)初期値None出力された配列(ndarray)のデータ型を指定します。dtypeが指定されない場合、データ型は基本的にはfloatになっている。returns:num等分された等差数列を要素とするndarrayが返されます。(filter関数の実装)C++はじめにC++で、関数型プログラミングでいうfilter関数(抽出の処理を行う関数のこと)を使う場合は、以下のテンプレート関数を使うといいです。以下のコード例では、ラムダ式と挿入イテレータが使用されています。iterator)は、イテレータに対する代入処理を挿入処理に置き換える特殊な出力イテレータです。10template関数でfilter関数の実装template関数を使えば、数列で文字列でも、同じfilter関数で処理できます。Kerasはじめに公式ドキュメントを読みましょう。Documentationサンプルもあります。Qiita作りたいもの適当な5次元のデータ配列を入力すると、その和が2.5より大きい場合に、1と教えてくれるニュートラルネットワークを作成します。データセットを作る適当なデータセットを作ります。以下は1000行、5列の2次元のデータを作成する。random.randの1つ目の引数に行数、2つ目の引数に列数を指定します。ここで、1つの行について考えると、列は5つあるため、1000個の5次元のデータを作成したと考えることもできます。1データセットを整形するone-hotなラベルを作成します。one-hot(ワン・ホット)は1つだけHigh(1)であり、他はLow(0)であるようなデータのことです。dtype=float32)ニュートラルネットワークを作るSequentialは層を積み上げるだけのモデル。今回は中間層(入力層・隠れ層・出力層)とする入力5個、出力2個のニュートラルネットワークを作成します。Sequential()Denseというレイヤー(通常の全結合ニューラルネットワークレイヤー)を使用する。5個のノートから、それぞれ10本矢印が出てきて、次の層のノードが10個であることを示す。ノード数は入力データの次元数と一致する必要がある。input_dim=5))出力に活性化関数を適用します。'relu'はランプ関数です。活性化関数は、入力信号の総和がどのように活性化するかを決定する役割を持ちます。これは、次の層に渡す値を整えるような役割をします。model.add(Activation('relu'))次は隠れ層―出力層。10個のノードから(活性化関数が適用されたあと)それぞれ値がやってくる。出力は2次元で、ノードにやってきた10個の値に対して重み付き和とソフトマックス関数を使用します。ソフトマックス関数は、活性化関数の1つで、出力層で使われる関数です。metrics=['accuracy'])コンパイル学習の前にコンパイルを行います。1つめは最適化関数、2つめは損失関数、3つめは評価指標のリスト。検証に使うデータの割合(全体のデータを学習に使わず、8割のみを学習に使って、残りの2割を評価に使う)。予測精度を判別します。広告を非表示にするコメントを書くもっと読む2019-04-09Pythonで画像データをFlickerで取得するPythonはじめにPythonで画像データを取得してみたいと思います。flickrのAPIは以下に記載されていますhttps://www.flickr.com/services/api/APIを使用して画像情報を取得してみるflickrのAPIを使用して画像の情報を取得します。打つと画像情報を取得できます。'996183'}次に、画像を実際にダウンロードします。打つと画像データがダウンロードされます。ヶ月)フロントエンド開発の学習内容を記載していきます。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。