<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 訓練模型 現在我們已經定義了模型,損失函數和優化函數,訓練模型來學習參數`w`和`b`。要訓??練模型,請定義以下全局變量: * `num_epochs`:運行訓練的迭代次數。每次迭代,模型都會學習更好的參數,我們將在后面的圖中看到。 * `w_hat`和`b_hat`:收集估計的`w`和`b`參數。 * `loss_epochs`,`mse_epochs`,`rs_epochs`:收集訓練數據集中的總誤差值,以及每次迭代中測試數據集上模型的 mse 和 r 平方值。 * `mse_score`和`rs_score`:收集最終訓練模型的 mse 和 r 平方值。 ```py num_epochs = 1500 w_hat = 0 b_hat = 0 loss_epochs = np.empty(shape=[num_epochs],dtype=float) mse_epochs = np.empty(shape=[num_epochs],dtype=float) rs_epochs = np.empty(shape=[num_epochs],dtype=float) mse_score = 0 rs_score = 0 ``` 初始化會話和全局變量后,運行`num_epoch`次的訓練循環: ```py with tf.Session() as tfs: tf.global_variables_initializer().run() for epoch in range(num_epochs): ``` 在循環的每次迭代中,在訓練數據上運行優化器: ```py tfs.run(optimizer, feed_dict={x_tensor: X_train, y_tensor: y_train}) ``` 使用學習的`w`和`b`值,計算誤差并將其保存在`loss_val`中以便稍后繪制: ```py loss_val = tfs.run(loss,feed_dict={x_tensor: X_train, y_tensor: y_train}) loss_epochs[epoch] = loss_val ``` 計算測試數據預測值的均方誤差和 r 平方值: ```py mse_score = tfs.run(mse,feed_dict={x_tensor: X_test, y_tensor: y_test}) mse_epochs[epoch] = mse_score rs_score = tfs.run(rs,feed_dict={x_tensor: X_test, y_tensor: y_test}) rs_epochs[epoch] = rs_score ``` 最后,一旦完成循環,保存`w`和`b`的值以便稍后繪制它們: ```py w_hat,b_hat = tfs.run([w,b]) w_hat = w_hat.reshape(1) ``` 讓我們在 2,000 次迭代后打印模型和測試數據的最終均方誤差: ```py print('model : Y = {0:.8f} X + {1:.8f}'.format(w_hat[0],b_hat[0])) print('For test data : MSE = {0:.8f}, R2 = {1:.8f} '.format( mse_score,rs_score)) ``` This gives us the following output: ```py model : Y = 20.37448120 X + -2.75295663 For test data : MSE = 297.57995605, R2 = 0.66098368 ``` 因此,我們訓練的模型不是一個非常好的模型,但我們將在后面的章節中看到如何使用神經網絡來改進它。 本章的目標是介紹如何使用 TensorFlow 構建和訓練回歸模型,而無需使用神經網絡。 讓我們繪制估計模型和原始數據: ```py plt.figure(figsize=(14,8)) plt.title('Original Data and Trained Model') x_plot = [np.min(X)-1,np.max(X)+1] y_plot = w_hat*x_plot+b_hat plt.axis([x_plot[0],x_plot[1],y_plot[0],y_plot[1]]) plt.plot(X,y,'b.',label='Original Data') plt.plot(x_plot,y_plot,'r-',label='Trained Model') plt.legend() plt.show() ``` 我們得到以下原始數據與受訓模型數據的關系圖: ![](https://img.kancloud.cn/10/9a/109ad0f365b861b0b8688a62a4f1bed3_827x482.png) 讓我們繪制每次迭代中訓練和測試數據的均方誤差: ```py plt.figure(figsize=(14,8)) plt.axis([0,num_epochs,0,np.max(loss_epochs)]) plt.plot(loss_epochs, label='Loss on X_train') plt.title('Loss in Iterations') plt.xlabel('# Epoch') plt.ylabel('MSE') plt.axis([0,num_epochs,0,np.max(mse_epochs)]) plt.plot(mse_epochs, label='MSE on X_test') plt.xlabel('# Epoch') plt.ylabel('MSE') plt.legend() plt.show() ``` 我們得到以下圖,顯示每次迭代時,均方誤差減小,然后保持在 500 附近的相同水平: ![](https://img.kancloud.cn/2a/18/2a18c9f51ed537e0c4e6d3000668a6aa_838x496.png) 讓我們繪制 r 平方的值: ```py plt.figure(figsize=(14,8)) plt.axis([0,num_epochs,0,np.max(rs_epochs)]) plt.plot(rs_epochs, label='R2 on X_test') plt.xlabel('# Epoch') plt.ylabel('R2') plt.legend() plt.show() ``` 當我們繪制 r 平方超過周期的值時,我們得到以下圖: ![](https://img.kancloud.cn/fe/e1/fee1b24bbe4ef5a4672e4e450470c028_835x496.png) 這基本上表明該模型以 r 的平均值開始,但隨著模型的訓練并減少誤差,r 平方的值開始變高,最終在某一點變得穩定略高于 0.6。 繪制 MSE 和 r-squared 可以讓我們看到我們的模型得到多快的訓練以及它開始變得穩定的地方,以便進一步的訓練在減少錯誤方面產生微不足道的好處或幾乎沒有好處。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看