前言
在 TensorFlow2.0 中,推薦使用 Keras ( tf.keras ) 構建神經網絡模型,因此學習tf2.0要從keras入手。
Keras 是一個用 Python 編寫的高級神經網絡 API,具有用戶友好、模塊化、易擴展性等特點。
1、keras詳解
Keras基本結構如下:
Keras 有兩個重要的部分:Model和Layer。Layer包含構成網絡的函數、變量,Model包含將層連接和組織的函數和參數。
2、tf.keras基本操作
Keras基本結構如下:
(1)引入
import tensorflow as tffrom tensorflow.keras import layers
(2)層的堆疊
model = tf.keras.Sequential()model.add(layers.Dense(32, activation='relu'))
通過add方式增加模型的層數,選擇Dense模式,激活函數爲relu。激活函數一般有:
(3)配置訓練
model.compile(optimizer=tf.keras.optimizers.Adam(0.001), loss=tf.keras.losses.categorical_crossentropy, metrics=[tf.keras.metrics.categorical_accuracy])
設計好模型後,需要選擇一個合適的優化器(Optimizers)對模型進行優化,tf2.0常用的優化器如下:
loss爲損失函數,metrics爲性能評估模塊。
3、tf.keras實現線性迴歸
迴歸分析是一種預測性的建模技術,它研究的是因變量(目標)和自變量(預測器)之間的關係。採用tf2.0中波士頓房價數據進行分析。
tf2.0中的datasets主要有:
波士頓房價輸入爲13維的因素數據,輸出爲房價。
CRIM:城鎮人均犯罪率。
ZN:住宅用地超過 25000 sq.ft. 的比例。
INDUS:城鎮非零售商用土地的比例。
CHAS:查理斯河空變量(如果邊界是河流,則爲1;否則爲0)。
NOX:一氧化氮濃度。
RM:住宅平均房間數。
AGE:1940 年之前建成的自用房屋比例。
DIS:到波士頓五個中心區域的加權距離。
RAD:輻射性公路的接近指數。
TAX:每 10000 美元的全值財產稅率。
PTRATIO:城鎮師生比例。
B:1000(Bk-0.63)^ 2,其中 Bk 指代城鎮中黑人的比例。
LSTAT:人口中地位低下者的比例。
MEDV:自住房的平均房價,以千美元計。
具體程序爲:
import tensorflow.keras as keras
import tensorflow.keras.layers as layers
# 導入數據 (x_train, y_train), (x_test, y_test) = keras.datasets.boston_housing.load_data()
#模型構建 model = keras.Sequential([
layers.Dense(32, activation='sigmoid', input_shape=(13,)), layers.Dense(64, activation='sigmoid'), layers.Dense(32, activation='sigmoid'), layers.Dense(1)
])
# 配置模型 model.compile(optimizer=keras.optimizers.SGD(0.1), loss='mean_squared_error', # keras.losses.mean_squared_error metrics=['mse'])
#模型結構 model.summary()
#模型訓練 model.fit(x_train, y_train, batch_size=50, epochs=50, validation_split=0.1, verbose=1)
#模型測試 result = model.evaluate(x_test, y_test)
print(model.metrics_names)
print(result)
模型結構爲:
模型輸出爲:
關注公衆號,獲取海量學習資源。
1024程序開發者社區的交流羣已經建立,許多小夥伴已經加入其中,感謝大家的支持。大家可以在羣裏就技術問題進行交流,還沒有加入的小夥伴可以掃描下方“社區物業”二維碼,讓管理員幫忙拉進羣,期待大家的加入。
//猜你喜歡//