您好,登錄后才能下訂單哦!
最近在deeplearning.ai上跟著做了幾個入門項目,受益匪淺,特記錄下來以便日后學習:
(一)預測房價,線性回歸
通過給出的房價市場價格,1個臥室的100k,2個臥室的150k。。。預測出7個臥室的房價。
只使用單神經元結構來預測房價,使用SGD優化器。
單神經元結構:等價于線性結構
, g=1(即線形激活函數)。
SGD:隨機梯度優化。
代碼:
import tensorflow as tf
import numpy as np
from tensorflow import keras
model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])]) *單神經元units=1
model.compile(optimizer='sgd', loss='mean_squared_error') *每次迭代訓練一個樣本且梯度下降運行一次更新一次損失函數。
xs = np.array([1, 2, 3, 4, 5, 6]) * 房間數量
ys = np.array([1,1.5 ,2, 2.5, 3, 3.5]) *將房價特征縮放/100k,加快模型收斂速度
model.fit(xs, ys, epochs=500) *訓練500次
print(model.predict([7])) *預測輸入為7的輸出...
結果:由于給出的樣本數量較小,訓練500次后預測結果為399.8k,基本擬合出50k+50k*n的房價規則。
.
.
Epoch 497/500
6/6 [==============================] - 0s 509us/sample - loss: 1.3851e-06
Epoch 498/500
6/6 [==============================] - 0s 325us/sample - loss: 1.3749e-06
Epoch 499/500
6/6 [==============================] - 0s 305us/sample - loss: 1.3649e-06
Epoch 500/500
6/6 [==============================] - 0s 388us/sample - loss: 1.3549e-06
[[3.998321]]
(二) 手寫數字辨認, Deep NN結構。
通過內置的minist 60000訓練集進行訓練。
要點:calback函數調用,達到目標值即中斷訓練。
DNN結構
代碼:無錫婦科醫院 http://www.bhnnk120.com/
import tensorflow as tf
class myCallback(tf.keras.callbacks.Callback): *callback對象
def on_epoch_end(self, epoch, logs={}):
if(logs.get('acc')>0.99):
print("\nReached 99% accuracy so cancelling training!")
self.model.stop_training = True
mnist = tf.keras.datasets.mnist *導入minist數據集
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
callbacks = myCallback()
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)), *將28*28像素列表化
tf.keras.layers.Dense(512, activation=tf.nn.relu),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=10, callbacks=[callbacks])
結果:
Epoch 1/10
60000/60000 [==============================] - 7s 119us/sample - loss: 0.2020 - acc: 0.9411
Epoch 2/10
60000/60000 [==============================] - 7s 116us/sample - loss: 0.0803 - acc: 0.9753
Epoch 3/10
60000/60000 [==============================] - 7s 124us/sample - loss: 0.0536 - acc: 0.9833
Epoch 4/10
60000/60000 [==============================] - 7s 122us/sample - loss: 0.0373 - acc: 0.9879
Epoch 5/10
59872/60000 [============================>.] - ETA: 0s - loss: 0.0264 - acc: 0.9919
Reached 99% accuracy so cancelling training!
60000/60000 [==============================] - 7s 125us/sample - loss: 0.0263 - acc: 0.9920
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。