20201020 資料卷與網路 (一)
課堂資料
課堂練習
MySQL / phpMyAdmin 安裝使用
生成兩個容器(MySQL & phpMyAdmin)
啟動 Docker
systemctl start docker
安裝MySQL
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7.24
安裝phpMyAdmin
docker run --name phpmyadmin -d --link mysql -e PMA_HOST="mysql" -p 8080:80 phpmyadmin/phpmyadmin
查看容器狀況
docker ps
進入容器
docker exec -it [容器名稱] bash
進入 MySQL
mysql -uroot -p password:root

MySQL 創建資料庫、資料表
建立 test1 資料庫
create database test1;
使用 test1 資料庫
use test1;
建立 mytable 資料表
create table mytable(school char(5),name char(10),id int);
顯示資料庫、資料表
show tables;
新增資料
insert into mytable(school, name, id) values ('NCTU','Jerry','123');
更新資料表
update mytable set name = 'HaHa' where id = '123';
查詢資料表 (選擇資料表 mytable 的所有欄位資料)
select * from mytable ;
docker exec -it [容器名稱] bashapt install net-toolapt install iputils-pingapt updateapt install iputils-ping
ping mysqlngrok 安裝及設定
cdwget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.ziplsunzip ngrok-stable-linux-amd64.zipls
Connect your account
./ngrok authtoken 1loD2tDuWfBg45wOHPmIYh3EsW2_6QkBjZRdJSGPhH7jHnuKzdocker run -d -p 8080:80 myweb:0.1curl 127.0.0.1:8080
Fire it upTo start a HTTP tunnel forwarding to your local port 80, run this next:
./ngrok http 8080

鳶尾花
cd
創建資料夾
mkdir iriscd iris
訓練並保存模型
vim train_model.pyimport pickle
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import tree
# simple demo for traing and saving model
iris=datasets.load_iris()
x=iris.data
y=iris.target
#labels for iris dataset
labels ={
0: "setosa",
1: "versicolor",
2: "virginica"
}
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=.25)
classifier=tree.DecisionTreeClassifier()
classifier.fit(x_train,y_train)
predictions=classifier.predict(x_test)
#export the model
model_name = 'model.pkl'
print("finished training and dump the model as {0}".format(model_name))
pickle.dump(classifier, open(model_name,'wb'))
python train_model.py
安裝 Python
yum install python
安裝 epel-release
yum install epel-release
安裝 python-pip
yum install python-pip -y
更新 pip
pip install --upgrade pip
安裝 Sklearn
pip install sklearn
加載模型並調用 API
vim server.pyimport pickle
from flask import Flask, request, jsonify
app = Flask(__name__)
# Load the model
model = pickle.load(open('model.pkl', 'rb'))
labels = {
0: "versicolor",
1: "setosa",
2: "virginica"
}
@app.route('/api', methods=['POST'])
def predict():
# Get the data from the POST request.
data = request.get_json(force = True)
predict = model.predict(data['feature'])
return jsonify(predict[0].tolist())
if __name__ == '__main__':
app.run(debug = True, host = '0.0.0.0')
python server.py
安裝 Flask
pip install flask
vim client.pyimport requests
# Change the value of experience that you want to test
url = 'http://127.0.0.1:5000/api'
feature = [[1.8, 3.0, 2.2, 0.2]]
labels ={
0: "setosa",
1: "versicolor",
2: "virginica"
}
r = requests.post(url,json={'feature': feature})
print(labels[r.json()])
python client.pycd /home/user
Docker 打包和運行
docker pull nitincypher/docker-ubuntu-python-pip
docker pull nitincypher/docker-ubuntu-python-pip
Last updated
Was this helpful?