- 運営しているクリエイター
記事一覧
Pythonでゲームを作る - 動かす仕組み。
Pythonでライブラリを使わずにゲームを作る時に必要な仕組みをまとめていきます。
表示部分を作ります。まず表示部分の考え方ですが、
つまりは
field = [ ["-","-","-","-","-"], ["-","-","-","-","-"], ["-","-","-","-","-"], ["-","-","-","-","-"], ["-","-"
PythonでDeepLearning - 学習済モデルを使ってみよう
PyTorchで用意されている"torchvision"で事前学習済みモデルが用意されているのでこのライブラリを読み込むことで簡単に使うことができます。
Google Colabで上記里のコードを実行してみます。
必要なライブラリなどインポート。
import jsonfrom pathlib import Pathimport numpy as npimport torchimport t
PythonでDeepLearning - フレームワーク
TensorFlowとPytorchを並べてみてみましょう。TensorFlowの方がスッキリしている感じがして使い印象を受けます。以下比較されているサイトです。
今現在はPytorchがよく使われている印象です。柔軟性が高いのがポイントでしょうか。
TensorFlow
Googleが開発していて使い方も比較的簡単に使えるようになっています。チュートリアルも日本語の解説もあります。
im
PythonでDeepLearning - 更新
一番単純なパーセプトロンでより推論が正しくなるようにパラメータ更新(学習)について考えます。
まずパーセプトロンでの推論をする部分。リスト(配列)を引数に入れます。以下では重みがweightlist、推論する値をXnumlistとして入力を受け付けます(引数名を自分でわかりやすいように変更しています。)。
この入力された数値を掛け合わせ、次のstep関数へ。
def dot(weightli
PythonでDeepLearning - ネットワーク
パーセプトロンから一歩すすんでネットワークを組んでみましょう。3層のネットワークを参考サイトを見ながら理解していきます。
パーセプトロンではステップ関数で0、1で判定しますが一歩進んで活性化関数をシグモイドを使って判定ネットワークを組み上げます。
シグモイド関数
def sigmoid(x): return 1/(1+np.exp(-x))
ネットワークを作る関数で重み、バイアスを定
PythonでDeepLearning - 活性化関数
まず、活性化関数とは
出力層においてよく使われる主な活性化関数としては、
パーセプトロンではステップ関数
def step_function(x): if x>0: return 1 else: return 0
簡潔にも書けて
def step(x): return 1.0 * (x >= 0.0)
これで0か1かの数字が出てきます。
引数にNumpyの配列を入れ
PythonでDeepLearning - scikit-learn
scikit-learnを使って簡単に機械学習の全体の流れを見てみましょう。
全体的の流れは
必要なライブラリを読み込み
from sklearn import datasetsfrom sklearn.model_selection import train_test_splitfrom sklearn import svmfrom sklearn.metrics import accur
Python - DeepLearningの基本。
複雑なDeepLearningの仕組みをもっとも簡単な形で表現できます。
単純な分岐で実装
ANDゲート
"and"なので2つの値が同じ時が真となります。この場合x1,x2ともに1の場合は真となり"1"となり、違う場合は"0"となります。
def AND_gate(x1, x2): if x1 == 1 and x2 == 1: return 1 else:
Python - 便利なNumpy (3) - インデックスなど。
インデックス
インデックスで指定してやる方法はNumpy以外の方法と同じです。リスト内の要素については0,1,2,・・と順番がついているのでそれを指定してやります。
array([1, 2, 3])
a[0]は"1"となります。
array([[1, 2, 3], [4, 5, 6]])
a[0][0]は"1"、a[0][1]は、"2"、a[1][1]は、"5"になります。
Python - 便利なNumpy (2) - 配列(list)
計算
計算をしてみます。合計は
f = np.array([[1, 2, 3], [4, 5, 6]])np.sum(f)
とすると全てを足し合わせた"21"が出力されます。
配列ごと
np.sum(f, axis=1)
array([ 6, 15])と出てのきます。2つの配列それぞれの合計が出てきています。
axisについては
リストの取り扱い
配列の形状を変えることができます
Python - 便利なNumpy (1)
今、はやりのDeep Learningでも注目のNumpyです。
を参考にさせてもらい、実際にGoogle Colabで動かして、理解を深めたいと思います。ColabはGoogleのアカウントでログインが必要ですがNumpyをはじめある程度必要なライブラリが入っているのでとっても便利です。
まず初めに、
import numpy as np
が必ず必要です。この作業がなければNumpyは使
Pythonで再帰関数!
再帰関数ってなんだかわかりにくい。わかったつもりでも、やっぱり?がつくことが多い。
解説されているので自分でも実行してみる。
まずよくみるやつ"階乗"。
def factorial(n): if n == 0: return 1 else: return n * factorial(n-1)
与えられた数を全て掛け合わせる。立とえば"3"を引数に入れ
数当てゲーム - 作ってみよう!
簡単でプログラミングらしいゲームを作ってみます。簡単なので文字だけ打って作ります。そのまま実行もでき、数字だけ入れていくものです。
JavaScriptで作る場合は
JavaScriptでは見た目もしっかりと見た目とかも作り込む感じのものができるので、少しややこしいです。
数当てゲームは単純なものなので文字だけで作った方が簡単なのでPythonでの方が作りやすいかも。
pythonで作る場
タートルグラフィックで市松模様
タートルグラフィックで実行します。
https://www.juce.jp/edu-kenkyu/lit/pdf/pl15r01.pdf
# 市松模様initializeTurtle() # 描画エリアの初期化# 初期設定speed(10) # 描画速度(1-10)bgcolor("black") # 背景色color("green") # 描画色width(10) # 線の太さa=80 #