Numpyのrandom.choice()

はじめに

以下の本を進行中。4章に入って、後でも役に立ちそうな関数があったのでメモ。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

 

 

random.choice()

本の中で大量の訓練データの中から少数のデータをランダムに抽出して学習するミニバッチ学習が行われており、それで使うのがnumpy.random.choice()

numpy.random.choice — NumPy v1.15 Manual

ただ本の中だとreplace引数をFalseにしていないので、少ない確率でデータの重複が起こる可能性が残っている?

gist6e3645fdfde5fc430527ec0c5705ef8e

 

pパラメータとか

出現確率を制御できるみたいなので後で調べる。

 

 

 

勉強:ニューラルネットワーク:活性化関数

 はじめに

下記の本を進めていく上で、メモとして。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

 

 

実装とグラフ出力

コードはこう。 

gist1b625c7cd56ab79cd814d173deda40de

出力されるグラフ。

f:id:kcha:20180804183314p:plain

配列、リストをスペース(何かの文字列)区切りで出力する方法 in c#, python3

はじめに

よく問題を解いている paiza (競技プログラミング&就活サイト)で問題を解く際、配列やリストデータをスペース(または何某かの文字)区切りで出力することが多くあるので備忘録として書き残しておく。

C#Pythonと複数の言語でやってみてどちらも Joinという名前の関数を使うと簡単だとわかり、以降、自分のググラビリティがあがったなあ、と思う。

 

C#

stringクラスのJoin関数で第一引数に区切り文字列、次に区切り対象の配列を当てればよい。

gist75b9b1467cd1e8b4d95173efe04e6b70

 

Python3

区切り文字列のjoinメソッドを呼び出して、引数に文字列のリスト(文字列でないとダメ)を当てる。数値のリストといった場合はmap関数でstr関数をマップするのが楽。

Way to output list data divided some string.

Unity chanアセットでサンプルのシーンを見る

Unity chanアセットのサンプルシーンを見るには

qiita.com

上記を参考にUnity chanアセットのScenesから3つのシーンを設定することでサンプルの確認ができました。f:id:kcha:20180722090928j:plain

ちゃんとFile -> Build Settingsでシーン3つともScenes in Buildに登録しておくこと。(各サンプルシーンに別のシーンへの遷移があるので、登録しないまま動かしたらエラーを吐かれました。)f:id:kcha:20180722091204j:plain

 

アクション、ポーズ、移動がそれぞれ見れるようになりました。

youtu.be

  

きっかけ

Unity chanのモデルだけ取り込んで移動の様子を見ていたところ、ジャンプ動作でアプリ停止になるとわかって、じゃあサンプルのシーンではどう処理しているのか見てみよう、というのがきっかけ。f:id:kcha:20180722090419j:plain

(ただSendMessageじゃなくてメッセージシステムを使うのが普通のようですね。)

Unityで夕方を作ってみたかった

はじめに

比較対象としてデフォルト空間から。 f:id:kcha:20180721092531j:plain

 

夕方

ここを参考にアセットストアから WorldSkies Free というアセットを取得。Window -> Lighting -> SettingsからSkybox Materialsを取得したアセットの中のSky_matに設定する。

さらにDirectional Lightを(角度を変えて追加。デフォルトのライトは無効化する)追加して、ライトのカラーをskyboxとあった色に変更。(最初、影が発生しなかったので注意して見るとライトのShadow TypeがNo ShadowsだったのでSoft Shadowsに変更)f:id:kcha:20180721092636j:plain

 

夕方(ライトは白色)

Skyboxの変更でも環境光に影響を与えるので、ライトを白に戻してみる。

f:id:kcha:20180721094638j:plain

影の縁には影響が出てますね。ユニティちゃんの肌や床は白いままなので、ライトの色の変更も同時に行うべきでしょうか。

 

追記

Skybox Series Freeというアセットを取得。Window -> Lighting -> SettingsのSkybox MaterialsにAmbienceExposureという空を設定。太陽が見えるようカメラ角度を変更した結果、こうなりました。

f:id:kcha:20180721100118j:plain

足元が浮いているように見えますね…

 

Unityについて書き始めてみる

まず実験するにもフィールドを作らければいけないと思ったんですが、よくある白黒チェックのフロアを作るにもどうするか悩むはめになり、とにかく某所からいただいたチェックの画像をテクスチャにplaneを配置して張り込む。(planeのスケールは[x:10,z:10])

 f:id:kcha:20180719232150p:plain

f:id:kcha:20180719232229p:plain

タイリングが[x:1,y:1]のため、目いっぱいに広がっています。

 

なので、タイリングを20x20に変更してそれっぽくする。

f:id:kcha:20180719232404p:plainf:id:kcha:20180719232413p:plain

とりあえず床はOK。