こちらを触ろうと思い奮闘の備忘録
機械学習なんてやったことない+Pythonも初なのでサンプルを理解しようとするだけで必死とりあえず
ちょっとずつまとめ
※インストール手順等は公式ドキュメントとかを見て対応していただきますようにお願いいたします。
そのあたりはQiitaとかの方がすごく良いドキュメントがあります。
チュートリアルを見たらデータの生成があるのですが
まずはここからつまづいたのでまとめる
ランダムデータを作成する段階でわからなかった・・・・
じつはこの「np.float32」、「np.random.rand(2, 100)」はimport文を見たらわかるのですが
TensorFlowとは違いnumpyと言う数学用のライブラリです。
Python発なのでわからなかった(汗汗
と事前にnumpyについて少し備忘録をまとめます。
x_data = np.float32(np.random.rand(2, 100)) # Random inputこれの意味ですが、0.0〜1.0までの乱数を2次元配列で100個作るという意味になります。
もっと値を小さくして2次元配列を5個つくるを実行
import numpy as np x_data = np.float32(np.random.rand(2, 5)) print x_data実行結果が以下
[[ 0.22113453 0.77961475 0.08531918 0.12012649 0.43397358]
[ 0.72542971 0.40160421 0.13799493 0.22445418 0.3758058 ]]
x_data = np.float32(np.random.rand(2, 5))
この中の2が次元を5が個数を表しているので変更すれば
相当な次元のデータが出来ると思います。
2次元配列で5個のランダム数が出来上がりました。
では、次に1〜10の少数にしたいであればどうするかは10をかけるだけです
import numpy as np x_data = np.float32(np.random.rand(2, 5)) * 10 print x_data
[[ 5.39343119 5.11242962 2.86795855 7.04219055 6.99380398]
[ 1.75642431 2.2877152 8.44399357 4.74935007 5.61556864]]
高校数学の行列のイメージで0.0〜1.0の間の数字に10をかけてくれます。
ではさらに、1〜10の整数はどうするのか?
答えは以下です。
import numpy as np x_data = np.int32(np.random.rand(2, 5) * 10) print x_data
[[4 8 3 5 8]
[1 2 0 8 0]]
なんとなくfloat32をint32に変更すればうまいこといくと思ったのですが
先に10をかける必要がありました。 ということは0.0〜10.0までの少数も先に10をかけることも可能ということでした。
まだまだ難しい・・・
こちらを応用すれば整数は無限と出来ると思います。
64bit型がないか確認しところ以下できるみたいです。
x_data = np.int64(np.random.rand(2, 5) * 10) x_data = np.float64(np.random.rand(2, 5) * 10)
なんかこれ以外とテストデータ作成もこれでできそうな気がしてたw
まずは基礎の基礎かと思いますが以上乱数生成に関する内容でした。