1、實驗平台搭建基礎
Jupyter (程式編輯調試工具)
TensorFlow 2.0-機器學習架構
python Programming-- Python運作環境
2、Jupyter 使用
%config IPCompleter.greedy=True #TAB鍵代碼自動提示
import tensorflow as tf
print(tf.__version__) #檢視tf版本
Jupyter 中執行指令行: ctrl+enter 鍵
3、一個神經元網絡的搭建
如何根據X得到Y?
例如: X= -1,0,1,2,3,4
Y=-3,-1, 1,3,5,
Y =2X-1TensorFlow 搭模組化型:
#構模組化型 #keras為tensorflow中的進階API
model = keras.Sequential([keras.layers.Dense(units=1,input_shape=[1])])
model.compile(optimizer='sgd ', loss='mean_squared_error ') #指定優化模型以及損失函數
model = keras.Sequential([keras.layers.Dense(units=1,input_shape=[1])])
model.compile(optimizer='sgd ', loss='mean_squared_error ') #指定優化模型以及損失函數
#準備訓練資料
xs=np.array([-1.0,0.8,1.8,2.0,3.8,4.0],dtype=float)
ys=np.array([-3.0,-1.0,1.0,3.0,5.0,7.0],dtype=float)
xs=np.array([-1.0,0.8,1.8,2.0,3.8,4.0],dtype=float)
ys=np.array([-3.0,-1.0,1.0,3.0,5.0,7.0],dtype=float)
#訓練模型
model.fit(xs,ys,epochs=500)
model.fit(xs,ys,epochs=500)
#使用模型
print ( model.predict( [ 10.0]))
print ( model.predict( [ 10.0]))
第二部分:機器視覺(圖檔分類)
2.2、加載Fashion MNIST資料集(分類衣服、鞋子等10個類别)
from tensorflow import keras
fashion_mnist = keras.datasets.fashion _mnist
(train_images, train_labels), (test_images, test_labels)=fashion_mnist.load_data() #加載資料
print(train_images.shape) #加載完檢視加載的具體資料為:60000張照片,灰階為28*28
(60000,28,28)
print(train_labels.shape) #加載完檢視标簽加載的具體資料為:60000張照片,
(60000,)
print(train_labels[ :5]) #檢視前5個标簽的
[9 0 0 3 0]
import matplotlib.pyplot as plt
plt.imshow(train_images[0]) #檢視圖檔具體什麼樣子
from tensorflow import keras
fashion_mnist = keras.datasets.fashion _mnist
(train_images, train_labels), (test_images, test_labels)=fashion_mnist.load_data() #加載資料
print(train_images.shape) #加載完檢視加載的具體資料為:60000張照片,灰階為28*28
(60000,28,28)
print(train_labels.shape) #加載完檢視标簽加載的具體資料為:60000張照片,
(60000,)
print(train_labels[ :5]) #檢視前5個标簽的
[9 0 0 3 0]
import matplotlib.pyplot as plt
plt.imshow(train_images[0]) #檢視圖檔具體什麼樣子
2.3、構造神經元網絡模型#構造神經元模型
model = keras.Sequential([keras.layers.Flatten(input_shape=(28,28)), keras.layers.Dense(128,activation=tf.nn.relu),keras.layers.Dense(10,activation=tf.nn.softmax))])
import tensorflow as tf
from tensorflow import keras
import matplotlib.pyplot as plt
fashion_mnist=keras.datasets.fashion_mnist
(train_images,train_labels),(test_images, test_labels)=fashion_mnist.load_data()
model = keras.Sequential([keras.layers.Flatten(input_shape=(28,28)), keras.layers.Dense(128,activation=tf.nn.relu),keras.layers.Dense(10,activation=tf.nn.softmax))])
import tensorflow as tf
from tensorflow import keras
import matplotlib.pyplot as plt
fashion_mnist=keras.datasets.fashion_mnist
(train_images,train_labels),(test_images, test_labels)=fashion_mnist.load_data()
#搭模組化型(輸入、中間、輸出)
model=keras.Sequential()
model.add(keras.layers.Flatten(input_shape=(28,28)))
model.add(keras.layers.Dense(128,activation=tf.nn.relu))
model.add(keras.layers.Dense(10,activation=tf.nn.softmax))
mode1.summary()
model=keras.Sequential()
model.add(keras.layers.Flatten(input_shape=(28,28)))
model.add(keras.layers.Dense(128,activation=tf.nn.relu))
model.add(keras.layers.Dense(10,activation=tf.nn.softmax))
mode1.summary()
#每一層添加了個bias (784+1)128=100480 (128+1)=1290
2.4訓練和評估模型
train_images_scaled=train_images/255
model.compile(optimizer=tf.optimizers.Adam(),loss=tf.keras.losses.sparse_categorical_crossentropy,metrics=['accuracy'])
model.fit(train_images_scaled,train_labels,epochs=5)
train_images_scaled=train_images/255
model.compile(optimizer=tf.optimizers.Adam(),loss=tf.keras.losses.sparse_categorical_crossentropy,metrics=['accuracy'])
model.fit(train_images_scaled,train_labels,epochs=5)
訓練結果 epoch 顯示截圖:
評估模型:
test_images_scaled=test_images/255
model.evaluate(test_images_scaled,test_labels)
test_images_scaled=test_images/255
model.evaluate(test_images_scaled,test_labels)
模型評估結果: