ベスパリブ

ベスパもってないです。バイク買いました。

「数式の読み方, 大学で学ぶ数学公式」とかいう神PDF

http://www.comp.tmu.ac.jp/yosihiro/teaching/how-to-read.pdf

四則演算から高校数学、大学数学の数式を網羅的に記載されています。 英語での読み方までもが載っていて非常に「へぇ」となります。

f′(x)は英語で「f prime」と読み、「f dash」とは読まないというのはこの資料で知りました。

首都大学東京の名前が変わっても、PDFは変わらず残っていて下さい。

raspi-configのExpand Filesystemをコマンドラインで実行する

raspi-configのExpand Filesystemをシェルスクリプトで操作したかったので、コマンドラインで操作する方法がないかなーと探したらありました。

$ raspi-config --expand-rootfs

Expand Filesystem - command line - Raspberry Pi Forums

クラスの特殊メソッド__str__()とは

「クラスオブジェクトを文字列で返すメソッド」です

class Hoge():
    title = "this is Hoge."

    def __str__(self):
        return self.title

# クラスオブジェクトを表示すると
print(Hoge())  # this is Hoge.

# インスタンスでもOK
hoge = Hoge()
print(hoge)  # this is Hoge.

文字列でない場合、エラーが発生します。

class Hoge():
    title = "this is Hoge."

    def __str__(self):
        return 1  # 数値にすると...

print(Hoge())
""" 以下のようなエラーになる
Traceback (most recent call last):
  File "Main.py", line 7, in <module>
    print(Hoge())
TypeError: __str__ returned non-string (type int)
"""

Anacondaで仮想環境を構築してdjango環境を作る(Windows)

AnacondaはPythonの実行環境を複数構築することができます。 コマンドプロンプトにAnacondaのパスが通っているなら、以下のコマンドで環境を作成できます。

# conda create -n [環境名]
# pythonのバージョンを指定したい場合は conda create -n [環境名] python=3.6 など
> conda create -n py36 python=3.6

仮想環境の確認は以下のコマンド

> conda info -e

仮想環境の削除は以下のコマンド

> conda remove -n py37 -all

仮想環境の切り替えは以下のコマンド

# activate [環境名]
> activate py36

仮想環境から抜けるときは以下のコマンド

> deactivate

djangoのインストールをします。

> conda install django
# djangoのバージョンを指定したい場合は pip instal django==2.1 など
> pip install django

djangoバージョン確認は、Pythonインタプリタを立ち上げて以下のコマンド

> python
>>> import django
>>> django.get_version()
'2.1'
>>> exit()

こんな感じです。 今までpyenv使ってましたけど、それより断然使いやすくて驚きました。

ソフトマックス関数の式変形

ゼロから作るDeepLearningという本を読んでいるのですが、ソフトマックス関数でオーバーフローしないように式変形するときは次のように変形するとあります。

\displaystyle y_k = \frac{exp(a_k)} {\sum_{i=1}^n exp(a_i)}

\displaystyle = \frac{C exp(a_k)} {C \sum_{i=1}^n exp(a_i)}

\displaystyle = \frac{exp(a_k + log{C})} {\sum_{i=1}^n exp(a_i + log{C})}

\displaystyle = \frac{exp(a_k + C')} {\sum_{i=1}^n exp(a_i + C')}

のですが、2行目から3行目の変形で分子のところをC exp(a_k) = exp(a_k + log{C}) とやっているのですが、こんな公式あったっけ?と手が止まりました。 普通にありました(高校数学!)。

指数と対数の関係式

底をa(a>0)という条件で、\displaystyle x = a^{log_a{x}} が成り立つので、\displaystyle C = e^{log_e{C}}と変形できます。

よって、上記の2行目から3行目の分子の変形は、

 C exp(a_k) = exp(log_e{C}) exp(a_k)

 = exp(a_k + log{C})

ということですね。

Atomエディタのremote-ftpで"Sync local -> remote"をするとインジケータが固まるとき

"Sync local -> remote"をするとインジケータが固まってしまう現象が起きました。

これはおそらくパーミッションの問題で、アップロードしたいファイルに書き込み権限を付与していないせいで起きます。

固まった場合、一度Packagesメニュー > Remote FTP > disconnect で切断した後、再度接続し、ファイルのパーミッションを直したあとでSync local -> remoteするとうまくいきます。

という内容のissueを報告しましたけど、かなりissue溜まってるからレスポンスは当分後になりそう。自分でPRするのが一番いいんでしょうけど。