それぞれ、ツールの使い方の勉強という意味含め、ニューラルネットなどででてくるのシグモイド関数の振る舞いをイメージしておきたいなども理由もあるので、シグモイド関数を描画してみようと思い描画してみた。。
gnuplotでの描画
gnuplotでもfor文が使えるらしいのでそれを使う。ターミナルを起動して、gnuplotを起動する。
hiroshi-no-MacBook-Air:Pro-tr hiroshi$ gnuplot #gnuplotと打ち込んでreturnを押す起動したら次のように打ちます。
gnuplot> set yrange[0:1] #見栄えを良くするための設定。y軸方向の描画範囲の指定。 gnuplot> plot for [i=0:10] 1/(1+exp(-i*x/10))これを実行すると、次のような図が表示される。
どうやら、plot forという書き方はバージョン4.4からの機能のようだ。
(参考:明日できること)
matplotlibでの描画
matplotlibでは次のように描画する。matplotlibとscipyがインストールできていることは前提。 インストールできていない場合はまずこちらから。
Macでpython3の環境構築9---Scipyのインストール---
Macでpython3の環境構築4---Matplotlibのインストール1---
from matplotlib import pyplot as plt import scipy as sp x=sp.arange(-10,10,0.1) for t in range(10): #必要なグラフは先にすべて生成する。 y=1/(1+sp.exp(-(2*t*x/10))) plt.plot(x,y) plt.show() #最後にまとめて描画すると重ねて表示される。matplotlibの使い方の説明にもなってしまうが、グラフを重ねて描画するときは、先にplt.plot()、plt.plot()という感じで必要なグラフをすべて生成して、最後にplt.show()をして最後に描画する。
上記を例えば、テキストファイルに書き、sigmoid.pyという名前で保存。sigmoid.pyがあるカレントディレクトリに移動して、
hiroshi-no-MacBook-Air:Pro-tr hiroshi$ python3 sigmoid.pyとコマンドを打って実行すると、次のような画面が出てくる。
for文のところで、あまり数を刻みすぎてしまうと、グラフが表示されたときよくわからない表示になってしまうので、適当に間引いて描画したほうがそれらしくみえる。
0 件のコメント:
コメントを投稿