構建了乙個輸入層,輸出層和單層隱藏層的神經網路模型。
# 使用numpy生產200個隨機點
x_data = np.linspace(-0.5,0.5,200)[:,np.newaxis]
# 產生雜訊
noise = np.random.normal(0,0.02,x_data.shape)
y_data = np.square(x_data) + noise
# 定義兩個placeholder
x = tf.compat.v1.placeholder(tf.float32,[none,1])
y = tf.compat.v1.placeholder(tf.float32,[none,1])
# 定義神經網路中間層
weights_l1 = tf.variable(tf.compat.v1.random.normal([1,10]))
# 偏置項
biases_l1 = tf.variable(tf.zeros([1,10]))
wx_plus_b_l1 = tf.matmul(x,weights_l1) + biases_l1
# 啟用函式
l1 = tf.nn.tanh(wx_plus_b_l1)
# 定義神經網路輸出層
weights_l2 = tf.variable(tf.random.normal([10,1]))
biases_l2 = tf.variable(tf.zeros([1,1]))
wx_plus_b_l2 = tf.matmul(l1,weights_l2) + biases_l2
prediction = tf.nn.tanh(wx_plus_b_l2)
# 二次代價函式
loss = tf.reduce_mean(tf.square(y - prediction))
# 使用梯度下降法訓練
train_step = tf.compat.v1.train.gradientdescentoptimizer(0.1).minimize(loss)
# 建立會話 執行程式訓練模型
with tf.compat.v1.session() as sess:
# 變數初始化
sess.run(tf.compat.v1.global_variables_initializer())
for _ in range(2000):
sess.run(train_step,feed_dict=)
# 獲得**值
prediction_value = sess.run(prediction,feed_dict=)
# 畫圖
深度學習之聯邦學習
聯邦學習 federated learning 能夠讓ai演算法借助位於不同站點的資料中獲得經驗。該方法能夠讓多個組織協作開發模型,而且不需要彼此之間直接共享敏感的資料 在多次訓練迭代過程中,共享模型所覆蓋的資料範圍會比任何乙個組織內部擁有的資料都要大得多。難點 不僅僅是資料量的問題,資料集還需要極...
深度學習之遷移學習
遷移學習 transfer learning 是一種機器學習方法,就是把為任務 a 開發的模型作為初始點,重新使用在為任務 b 開發模型的過程中。遷移學習是通過從已學習的相關任務中轉移知識來改進學習的新任務,雖然大多數機器學習演算法都是為了解決單個任務而設計的,但是促進遷移學習的演算法的開發是機器學...
動手學深度學習之深度學習基礎
資料集的形式主要有三種 訓練集測試集 測試資料集不可以用來調參 驗證集 k折交叉驗證 把原始資料分成k組,每次訓練時,使用k 1個子資料集訓練,使用乙個作為驗證,最後通過k次求取訓練誤差和驗證誤差的平均。過擬合 overfitting 模型的訓練誤差遠小於它在測試資料集上的誤差 欠擬合 underf...