---
title: python讀書會(八)
tags: python讀書會
notes: 爬蟲、神經網路、DL、%d、字串的速度文檔、比較速度實驗、unicode、輸入字元、array、作圖、讀寫檔案...
---
{%hackmd @themes/orangeheart %}
## 8.0 回顧
1. 基本的numpy.array
2. 基本matplotlib作圖
3. 簡單爬蟲架構及應用
## 8.1 延續上周
**HTML5**
因為上禮拜停課,所以放在講義帶過,有興趣學更多的自己加油,最好學完html後去學習CSS和JavaScript。
首先,打開VisualStudio Code (因為我也只會用VScode編譯QQ),在模組的欄位將Live Server下載起來:

#### 8.1.1 html基本語法
對於網頁編寫有興趣的人可以自行去找需要資源,這邊是不夠美觀的框架部分,基本上用html寫成,也有其他不同原始碼語法。寫成一個完整的網頁,除了框架,也需要其他輔助功能,及美麗的外觀,在學習前端的路上請你多多加油努力!!!
- [ ] 程式碼 8.1.1a
```=
<!DOCTYPE html>
<html>
<head>
<title>這邊顯示在頁面</title>
</head>
<body>
<h1>這是大標題</h1>
<h2>這是次大標題</h2>
<h6>這是最小標題</h6>
<p>這是第一段落</p>
<p>這是第二段落</p>
<a href="https://youtu.be/dQw4w9WgXcQ">連結</a><br/>
<a href="https://reurl.cc/bGlM1E" target="_blank">打開有驚喜</a><br/>
<strong>將文字加粗</strong><br/>
<b>將文字加粗</b><br/>
<i>斜體</i><br/>
<em>斜體</em><br/>
<mark>螢光筆</mark><br/>
<small>大字體</small><br/>
<big>小字體</big><br/>
<pre>將文件的 空白
換行完整呈現</pre><br/>
<del>刪除線</del><br/>
<ins>底線</ins><br/>
10<sup>上標</sup><br/>
<sub>下標</sub>10<br/>
<blockquote>縮排</blockquote><br/>
<abbr title="哈囉,你今天過的還好嗎?">把滑鼠放上來(●'◡'●)</abbr><br/>
<q>雙引號</q><br/>
<!--註解--><br/>
<bdo dir="rtl">醫學證明,文字組合不影響閱讀順序</bdo><br/>
<img src="https://i.imgur.com/Oa920JS.png" alt="Anya"><br/>
<table width="200"><tr><td>表格11</td><td>表格12</td><td>表格13</td></tr><tr><td>表格21</td><td>表格22</td><td>表格23</td></tr><tr><td>表格31</td><td>表格32</td><td>表格33</td></tr></table><br/>
<input type="text" placeholder="輸入欄"/><br/><br/>
<textarea name="你好" id="yoyoy" cols="30" rows="10">已經存在的文字</textarea><br/>
<form action="http://hyperphysics.phy-astr.gsu.edu/hbase/index.html" method="post" target=""><input type="password" placeholder="隨便輸入然後enter"/><input type="submit" value="不要按我"></form><br/>
</body>
</html>
```
## 8.2 進階python
#### 8.2.1 python神經網路介紹
:dizzy:**神經網路(Neural Network)**
也稱為人工神經網絡(ANN)或模擬神經網絡(SNN),是機器學習(Machine Learning)的一個子集,是深度學習(Deep Learning)算法的核心。神經網絡反映了人腦的行為,使計算機程序能夠識別模式並解決人工智能、機器學習和深度學習領域的常見問題。
ANN由一個節點層組成,其中包含一個輸入層、一個或多個隱藏層和一個輸出層。每個節點或人工神經元都連接到另一個節點並具有關聯的權重和閾值。如果任何單個節點的輸出高於指定的閾值,該節點將被激活,將數據發送到網絡的下一層。否則,沒有數據會傳遞到網絡的下一層。


#### 8.2.2 機器學習介紹
機器學習 (ML) 是人工智慧 (AI) 的一種,讓系統從資料當中反複學習,其方法是透過各種演算法來識別資料中的模式,然後使用可產生精確模型的資料來加以訓練,進而預測結果。
#### 8.2.3 深度學習介紹
深度學習(DL)是機器學習(ML)的領域領域,它使用算法類似於人腦使用元。深度學習根據根據人腦工作方式創建人工神經網絡及不同層級深度學習,我們人類可以輕鬆自然地做到的事情是通過我們遇到的例子來學習。
因為我沒有熟悉人工智慧領域,所以以下程式碼都是從網路找來的。
8.2.3a、8.2.3b都是來自 https://ithelp.ithome.com.tw/articles/10191404
- [ ] 程式碼 8.2.3a
```python=
# 導入函式庫
import numpy as np
from keras.models import Sequential
from keras.datasets import mnist
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.utils import np_utils # 用來後續將 label 標籤轉為 one-hot-encoding
from matplotlib import pyplot as plt
# 載入 MNIST 資料庫的訓練資料,並自動分為『訓練組』及『測試組』
(X_train, y_train), (X_test, y_test) = mnist.load_data()
# 建立簡單的線性執行的模型
model = Sequential()
# Add Input layer, 隱藏層(hidden layer) 有 256個輸出變數
model.add(Dense(units=256, input_dim=784, kernel_initializer='normal', activation='relu'))
# Add output layer
model.add(Dense(units=10, kernel_initializer='normal', activation='softmax'))
# 編譯: 選擇損失函數、優化方法及成效衡量方式
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# 將 training 的 label 進行 one-hot encoding,例如數字 7 經過 One-hot encoding 轉換後是 0000001000,即第7個值為 1
y_TrainOneHot = np_utils.to_categorical(y_train)
y_TestOneHot = np_utils.to_categorical(y_test)
# 將 training 的 input 資料轉為2維
X_train_2D = X_train.reshape(60000, 28*28).astype('float32')
X_test_2D = X_test.reshape(10000, 28*28).astype('float32')
x_Train_norm = X_train_2D/255
x_Test_norm = X_test_2D/255
# 進行訓練, 訓練過程會存在 train_history 變數中
train_history = model.fit(x=x_Train_norm, y=y_TrainOneHot, validation_split=0.2, epochs=10, batch_size=800, verbose=2)
# 顯示訓練成果(分數)
scores = model.evaluate(x_Test_norm, y_TestOneHot)
print()
print("\t[Info] Accuracy of testing data = {:2.1f}%".format(scores[1]*100.0))
# 預測(prediction)
X = x_Test_norm[0:10,:]
predictions = np.argmax(model.predict(X), axis=-1)
# get prediction result
print(predictions)
```
- [ ] 程式碼 8.2.3b
```python=
plt.imshow(X_test[0])
plt.show()
```
情緒辨識.github
https://github.com/shanthoshvenkatesan/Facial-Image-Recognition-/blob/master/Happy%20and%20Neutral%20recognition.ipynb
## Homework 8
以下可以當作閒暇打發時間的挑戰,問題都可以去網路google大神解決。
* 本周題目:
1. 嘗試自己寫一個簡單爬蟲,找尋一個公開合法的網頁爬取資料。
2. 嘗試使用hackMD寫出文章。
3. 嘗試將hackMD的文章弄到Github上。
4. 如果做出神經網路或其他作品,那請分享在刷題貢獻並註上姓名。
<font class=rainbow-text>**肝肝好的人生~~:rainbow:**</font>
