#目的:非線性迴歸 #(1)步驟1:載入AI函式庫:import tensorflow library(TensorFlow and keras) import tensorflow as tf #(2)步驟2:建立神經網絡模型,單層神經,一個神經元units=1 model = tf.keras.Sequential() model.add(tf.keras.layers.Dense(units=10, input_dim=1, activation='relu')) model.add(tf.keras.layers.Dense(units=8, activation='relu')) model.add(tf.keras.layers.Dense(units=8, activation='relu')) model.add(tf.keras.layers.Dense(units=8, activation='relu')) model.add(tf.keras.layers.Dense(units=1, activation='relu')) #(3)步驟3:建立目標函數,設定求解方法(最少需要設定兩個參數:A.損失函數loss,B.優化函數optimizer) model.compile( optimizer = tf.keras.optimizers.Adam(), #optimizer = tf.keras.optimizers.SGD(), loss = tf.keras.losses.MeanSquaredError() ) #(4)步驟4:設定輸入矩陣數據(x,y), import numpy as np xs = np.array([-0.5, -0.44736842, -0.39473684, -0.34210526, -0.28947368, -0.23684211, -0.18421053, -0.13157895, -0.07894737, -0.02631579, 0.02631579, 0.07894737, 0.13157895, 0.18421053, 0.23684211, 0.28947368, 0.34210526, 0.39473684, 0.44736842, 0.5]) ys = np.array([0.24595018, 0.19992016, 0.11848622, 0.09924376, 0.08173275, 0.0596075, 0.02737021, 0.01544445, 0.02764277, 0.00527432,-0.00814974,-0.01725386, 0.0489, 0.02935983, 0.04428556, 0.08552249, 0.12389014, 0.15113714, 0.20734122, 0.23009059]) #(5)步驟5:訓練模型: model.fit(xs,ys,epochs=500) #(6)步驟6:預測 yp = model.predict([1.0]) #(7)步驟畫圖:訓練+預測 import matplotlib.pyplot as plt plt.plot(xs,ys,'ro') plt.plot([1.0],yp,'bo')