Logicky BLOG

Logickyの開発ブログです

  • Javascript
  • Python
  • PHP
  • Go
  • OS・サーバ
  • 機械学習
  • つくったもの
  • 数学
  • アルゴリズム
  • Logicky

Python

TensorFlow - tf.strided_slice関数を調べる

tf.strided_sliceを調べます。TensorFlowのGithubにのってる説明ページはこれです。 tf.strided_slice(input_, begin, end, strides=None, begin_mask=0, end_mask=0, ellipsis_mask=0, new_axis_mask=0, shrink_axis_mask=0, var=None, name=None) {#stride…

Python3 - cifar10をダウンロードして画像を表示させてみる

参考: Convolutional Neural Networks https://github.com/tensorflow/models/tree/master/tutorials/image/cifar10/ 上記githubに実際のコードがあります。 Cifar10というのは、10種類のカラー画像が沢山入ってるやつで、機械学習によく使われるようです。…

Python3 - PIL.Imageで画像を合体してテキストを書く

コードサンプル from PIL import Image, ImageDraw a = Image.open('img/seven.jpeg') #28 x 28 b = Image.open('img/cifar1.png') #32 x 32 b = b.resize((28, 28)) a_txt = 'seven' b_txt = 'cifar10' new = Image.new('RGB', (160, 100), (230, 230, 230)…

Numpy - 配列の形を変えるテスト

TensorFlowでは頻繁に配列の形を変換しますが、結構混乱して理解するのに時間がかかります。Numpy.reshapeとかNumpy.transposeの動きをシンプルな配列で確認してみます。 これから操作する配列は、下記のようなCifar10の画像データの構造をイメージしてます…

Python3 - Clint (コマンドライン入出力を色々できるモジュール)

面白そうだからやってみる。 参考:https://github.com/kennethreitz/clint/tree/master/examples 参考:PythonのコマンドラインツールClintを試す インストール $ pip install clint 文字に色つける print(colored.blue('hoge')) コードサンプル from clint…

Python3 - ファイルのダウンロード

urllib.request.urlretrieveを使うとできます。本家の説明ページはここです。なんか廃止されるかもしれないとか書いてあるけど。他にはRequestsパッケージを使う方法もあります。 urllib.request.urlretrieveを使う 圧縮ファイルをダウンロードして展開する …

TensorFlow - tf.gfile.Exists

tf.gfile.Existsを調べます。 コード例 if tf.gfile.Exists(FLAGS.train_dir): tf.gfile.DeleteRecursively(FLAGS.train_dir) tf.gfile.MakeDirs(FLAGS.train_dir) サンプルコード import tensorflow as tf dir_path = './hoge' if tf.gfile.Exists(dir_path…

Python3 - if __name__ == '__main__':

参考:Python - if name == 'main': の意味 コマンドラインからスクリプトファイルを指定してPythonインタプリタを起動すると、指定されたファイルは、__main__という名前のモジュールとしてPythonに読み込まれる。実行中スクリプトのモジュールの名前は、__…

TensorFlow - tf.app.flags.FLAGS(ファイル実行時にパラメタを付与できるようにする)

tf.app.flags.FLAGSを使うと、TensorFlowのPythonファイルを実行する際にパラメタを付与できるようになる。 下記のようにすると、パラメタ付与が可能になり、デフォルト値やヘルプ画面の説明文を登録できる。tf.app.flags.DEFINE_stringは、String型用で、他…

TensorFlow - TensorBoard

TensorBoardを使うと、設定したノード間の繋がりや、訓練状況等をグラフで表示できます。 シンプルな使い方 コードサンプル import tensorflow as tf a = tf.constant(2) b = tf.constant(3) add = tf.add(a, b) with tf.Session() as sess: tf.summary.File…

TensorFlow - 畳み込みニューラルネットワーク(CNN)をやってみる

TensorFlowのチュートリアルにあるので見てみます。 Deep MNIST for Experts 日本語に訳してくれているのがこれです。 CNNとは?(メモ) 畳み込みニューラルネットワーク(CNN)は、Convolutional neural networkの略だそうです。CNNじゃない一般的なものは…

TensorFlow - 畳み込み演算の関数 tf.nn.conv2d

TensorFlowには、畳み込み演算用の関数があります。tf.nn.conv2dです。下記のように使います。 tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME') xは、元画像です。Wはフィルターのパラメタです。stridesはフィルタの適用間隔です。paddingはフィ…

畳み込みフィルターで画像をぼかしてみる

畳み込みニューラルネットワークは、畳み込みフィルターを使ってますが、畳み込みフィルターを使うと画像を加工出来ます。ぼかすには、画像の明るさを周辺の明るさの平均をとってそれで埋めていくことでぼけます。 適当な画像をぼかしてみようと思います。 …

手書き文字を作れるJavascriptをつくってTensorFlowで予測させてみた

MNISTでテストしているだけだと味気ないので、ブラウザで数字を手書きして、それを予測するようにしてみました。JavascriptのCanvasでお絵かきアプリみたいのを作って、そこに手書きで数字を書いてボタン押したら、28x28に縮小して、Base64の状態でサーバに…

TensorFlow - 隠れ層があるニューラルネットをつくる

入力層、出力層の間に隠れそうをつくります。隠れそうが何層あっても対応できるプログラムにしたいと思ったのですが、TensorFlowは事前にモデルをつくるので、forとか使えないかもと思って良くわからなかったし、そもそも単純に層の数が多ければいいってもん…

TensorFlow - パラメータを保存して使う

学習したパラメータを保存するのは、下記のようにやります。 Saverを呼び出して、 saver = tf.train.Saver() saveメソッドで保存します。 saver.save(sess, '.\ckpt\model.ckpt') Windowsだけかもしれませんが、save()の第二引数に保存するファイル名を入れ…

TensorFlowのMNISTはどうなってるのか?

TensorFlowのチュートリアルのMNISTはどうなってるのか? ソースコードはこれです。 とりあえずデフォルトだと、[0,0,0,128,255...]とかではなく、[0.,0.,0.9..]みたいになっていて、これはdtypeをtf.float32にするとわざわざそうしてくれるらしい。もう一つ…

python3 - WEBサーバを立ち上げる

WEBサーバの立ち上げ Windows10です。下記だけで、127.0.0.1:8000にアクセスできるWEBサーバが立ち上がります。 $ python -m http.server --cgi 下記のように、立ち上げたディレクトリの直下にcgi-binディレクトリをつくって、その中にpyファイルを作成する…

Windows10でPythonフレームワーク『Falcon』を使ってみる

Falconは、軽量のAPIサーバに特化したフレームワークで速いんだそうです。とりあえずWindows10にインストールしてみます。 Falconをインストール $ pip install falcon インストールしてるものの確認は下記でできます。 $ pip freeze | grep falcon [33mYou …

TensorFlow - MNISTで機械学習してみる(入力層・出力層のみ)

MNISTを取得する TensorFlowのチュートリアル用にMNISTが簡単に取り込めるようになっているらしい。 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt from tensorflow.examples.tutorials.mnist import input_data mnist = inp…

TensorFlowのWindows版をインストールする

TensorFlowのWindows版がでてた 「Windows10上のTensorFlowでGPUを利用しようとしてダメだった→できるようになったみたいです!」なんと、Windows版でGPU利用も可能なものが出てるらしい。「Google、オープンソースの機械学習ライブラリ「TensorFlow」のWind…

Python - MNISTを使う

機械学習で使えるサンプル画像の有名なのがMNISTだそうです。0-9までの手書き文字画像と、正解ラベルデータが、トレーニング用とテスト用で分けられています。 http://yann.lecun.com/exdb/mnist/ バイナリデータになっていて、画像等は全部データとしてつな…

Python3 - gzipで圧縮・読み込み

参考:http://docs.python.jp/3/library/gzip.html gzip.openで、gzファイルを読み込めるっぽい。 with構文については、ここに詳しい説明があった。 圧縮 バイナリ文字列を圧縮する例 import gzip s_in = b"Lots of content here" s_out = gzip.compress(s_i…

Numpy - reshape

np.reshapeがややこしいので試してみる。 import numpy as np a = np.array([1, 2, 3, 4, 5, 6]) print(a) b = np.reshape(a, (2, 3)) print(b) [1 2 3 4 5 6] [[1 2 3] [4 5 6]] 配列aを、2行3列に変換しろ!といっております。試しに(2, 4)とか、(2, 2)と…

Python - 勾配法

勾配は、すべての変数に対する偏微分をベクトルにしたものです。勾配法は、勾配を使って関数が最小になるパラメタを探す方法のことです。偏微分はある点における、各パラメタに対する微分ですので、傾きです。傾きが分かるとパラメタをどう動かすとマイナス…

python - 損失関数

ディープラーニングで使う損失関数の、二乗和誤差と交差エントロピー誤差。 二乗和誤差 二乗和誤差は、差の二乗を全部足して2で割る。 def nijowagosa(y, t): return 0.5 * np.sum((y - t)**2) y = np.array([0.2, 0.03, 0.8]) t = np.array([0, 0, 1]) prin…

Python - 偏微分・勾配

偏微分 偏微分は、変数が2つ以上あるときに1つ以外を固定にして、固定じゃない1つに対して微分をすることだそうです。Pythonでやると簡単にできます。 下記の式で、x0が3、x1が4のときの偏微分 [mathjax] $$f(x_0, x_1)=x_02+x_12$$ コード import numpy as …

Python - Matplotlibで3次元グラフを書く

下記の式をグラフ化してみる。 [mathjax] $$f(x_0, x_1)=x_02+x_12$$ コード import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D def func(x0, x1): return x0**2 + x1**2 x0 = np.arange(-3, 3, 0.25) x1 = np.a…

Python - 数値微分

微分はある瞬間の変化量です。公式は下記です。超絶的に0に近い、というかもはや0という謎の極小値でもって計算することで瞬間変化量を出します。解析的にやるといろんな公式が編み出されているので真の微分が出せますが、コンピュータで公式通りにやろう…

ディープラーニングのサンプルコード

メモ。ゼロから作るDeep Learningの本用のサンプルコードは、Githubで公開されてます。これは、Githubの公開リポジトリなのでブログに書いても大丈夫なやつなはずなのでメモ。 oreilly-japan/deep-learning-from-scratch

  • Javascript
  • Python
  • PHP
  • Go
  • OS・サーバ
  • 機械学習
  • つくったもの
  • 数学
  • アルゴリズム
  • Logicky