ゼロから始めるDeep Learning<2日目>

#! /usr/bin/env python3

import numpy as np

x = np.array([1.0,2.0,3.0])
print(x)
print(type(x))

y = np.array([2.0,4.0,6.0])

print(x + y)
print(x * y)
print(x / 2)

A = np.array([[1,2],[3,4]])
print(A)
A.shape
A.dtype

B = np.array([[3,0],[0,6]])
print(A + B)
print(A * B)

print(A * 10)

# ベクトルや行列を一般化したものをテンソルと呼びます。

for row in A:
    print(row)

for row in B:
    for i in row:
        print(i)
        
X = np.array([[51,55],[14,19],[0,4]])
XX = X.flatten()
print(XX)
print(XX[np.array([0,2,4])])

print(XX[XX>15])

import matplotlib.pyplot as plt
from matplotlib.image import imread
 
x = np.arange(0,6,0.1) # 0から6まで0.1刻みで生成
y = np.sin(x)
plt.plot(x,y)
# plt.show()

img = imread('1.5.jpg')
plt.imshow(img)
plt.show()

特にハマるところもなく。サクッと。今日まででPythonの文法終わり。明日からいよいよ。

ゼロから作るDeep Learning開始

機械学習はウェーブの最終段階に来てると思うんですね。
ここで追いついておかないと致命的に時代遅れになると。

9/24にオライリーから出た書籍を使って勉強することにしました。
作者日本人でよく知らん人だけどあんたに賭けてみるよ。python界隈では有名人なのかもしれないが、界隈知らんので知らん人だ。

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

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

オライリーなのでひたすら分厚い本を覚悟してたけれどコンパクトで印象++
初めての本格的なPythonというのも楽しみ。

今日はPythonの基礎の基礎の文法のセクションでした。半分ぐらいしかやれてないけれど。

環境構築はhomebrewを使いました。
qiita.com
s/python/python3/でインストール。python3という名前でpython3がインストールされます。
pipもpip3としてインストールされるのでまぁ問題なし。ライブラリのインストールもさくっと。
pipの自己アップデートは失敗したけどまぁ、問題ないかな。。

今日のプログラム。
ifさえアレばなんとかなるってschemeで覚えたからもうコレで十分かといまは思っておく。
tupleとかあったなぁ。内包表記?だっけ。あったなぁ。忘れてる。
emacspython-modeが悪くない。ac-modeつけて、(の補完も設定すればわりかしストレスフリー

#! /usr/bin/env python3

a = [1,2,3,4,5]
print(len(a))
a[0]
a[4] = 99
print(a)
# print(a[5]) error

me = {'height' : 180}
me['height']
me['weight'] = 60
print(me)

# boolean
hungry = True
hoge = False

# if
if hungry:
    print("hungry")
else:
    print("not hungry")

for i in [1,2,3]:
    print(i)

def hello():
    print("Hello World")

hello()

class Man:
    def __init__(self,name):
        self.name = name
        print("constructor")

    def hello(self):
        print("Hello " + self.name + "!")

    def goodbye(self):
        print("Good Bye " + self.name + "!")

m = Man("David")
m.hello()
m.goodbye()

サーバーに侵入された

サーバーに侵入されましたよ。
原因はアップローダー。
phpスクリプトアップロードされて実行されてしまった。
getAdmin.phpとか名前がやべぇよ。

いやはや。迂闊でしたよ。index.php書き換えられてビビった。

というわけで対策。

Options +Indexes
RemoveType .php
RemoveHandler .php
<FilesMatch \.cgi$>
    SetHandler text/plain
</FilesMatch>
<FilesMatch \.php$>
    SetHandler text/plain
</FilesMatch>
<FilesMatch \.pl$>
    SetHandler text/plain
</FilesMatch>
<FilesMatch \.rb$>
    SetHandler text/plain
</FilesMatch>
<FilesMatch \.py$>
    SetHandler text/plain
</FilesMatch>

まぁ、そこそこ。ホントはすべてtext/plainにしたいのですけれども。

また侵入された

今度は

Options +Indexes -ExecCGI
php_flag engine off
AddType text/plain php

としました。

Apache->glassfish->jenkins/gitbucketのapacheの設定

warで落としてきたjenkinsとかをapache経由でglassfishで動かす。

a2enmod proxy
a2enmod proxy_http
a2enmod headers

して

ProxyPreserveHost On
ProxyPass         /jenkins  http://localhost:8080/jenkins nocanon
ProxyPassReverse  /jenkins  http://localhost:8080/jenkins
ProxyRequests     Off
AllowEncodedSlashes NoDecode
<Proxy http://localhost:8080/jenkins*>
  Order deny,allow
  Allow from all
</Proxy>
ProxyPass /gitbucket http://localhost:8080/gitbucket
ProxyPassReverse /gitbucket https://localhost:8080/gitbucket

ProxyPreserveHost On
ないとloalhost:8080/jenkinsとかにリダイレクトされる。

glassfishJavaEEの参照実装なのでこれから使う機会も増えると思う。こういうノウハウは蓄積していきたい。

管理コンソールとかも充実しまくりなのでglassfishは使っていきたい。

h2o->apache->glassfish->jenkinsとかになって良い感じ