<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之旅 廣告
                # 使用矩陣逆方法 在這個秘籍中,我們將使用 TensorFlow 用矩陣逆方法求解二維線性回歸。 ## 做好準備 線性回歸可以表示為一組矩陣方程,比如`Ax = b`。在這里,我們感興趣的是求解矩陣`x`中的系數。如果我們的觀察矩陣(設計矩陣)`A`不是正方形,我們必須要小心。解決`x`的解決方案可以表示為: ![](https://img.kancloud.cn/c8/5c/c85c1c997ee73cc412ce25777b941754_1430x300.png) 為了證明確實如此,我們將生成二維數據,在 TensorFlow 中解決它,并繪制結果。 ## 操作步驟 我們按如下方式處理秘籍: 1. 首先,我們加載必要的庫,初始化圖并創建數據。請參閱以下代碼: ```py import matplotlib.pyplot as plt import numpy as np import tensorflow as tf sess = tf.Session() x_vals = np.linspace(0, 10, 100) y_vals = x_vals + np.random.normal(0, 1, 100) ``` 1. 接下來,我們創建要在逆方法中使用的矩陣。我們首先創建`A`矩陣,它將是`x`數據列和 1s 列。然后,我們從`y`數據創建`b`矩陣。使用以下代碼: ```py x_vals_column = np.transpose(np.matrix(x_vals)) ones_column = np.transpose(np.matrix(np.repeat(1, 100))) A = np.column_stack((x_vals_column, ones_column)) b = np.transpose(np.matrix(y_vals)) ``` 1. 然后我們將`A`和`b`矩陣轉換為張量,如下所示: ```py A_tensor = tf.constant(A) b_tensor = tf.constant(b) ``` 1. 現在我們已經設置了矩陣,我們可以使用 TensorFlow 通過矩陣逆方法解決這個問題,如下所示: ```py tA_A = tf.matmul(tf.transpose(A_tensor), A_tensor) tA_A_inv = tf.matrix_inverse(tA_A) product = tf.matmul(tA_A_inv, tf.transpose(A_tensor)) solution = tf.matmul(product, b_tensor) solution_eval = sess.run(solution) ``` 1. 我們現在使用以下代碼從解,斜率和 y 截距中提取系數: ```py slope = solution_eval[0][0] y_intercept = solution_eval[1][0] print('slope: ' + str(slope)) print('y_intercept: ' + str(y_intercept)) slope: 0.955707151739 y_intercept: 0.174366829314 best_fit = [] for i in x_vals: best_fit.append(slope*i+y_intercept) plt.plot(x_vals, y_vals, 'o', label='Data') plt.plot(x_vals, best_fit, 'r-', label='Best fit line', linewidth=3) plt.legend(loc='upper left') plt.show() ``` 我們得到前面代碼的圖,如下所示: ![](https://img.kancloud.cn/bb/39/bb391bf24121ab0795dfdeecd7757f0a_374x256.png) 圖 1:數據點和通過矩陣逆方法獲得的最佳擬合線 ## 工作原理 與之前的秘籍或本書中的大多數秘籍不同,此處的解決方案僅通過矩陣運算找到。我們將使用的大多數 TensorFlow 算法都是通過訓練循環實現的,并利用自動反向傳播來更新模型變量。在這里,我們通過實現將模型擬合到數據的直接解決方案來說明 TensorFlow 的多功能性。 > 我們在這里使用了一個二維數據示例來顯示與數據擬合的圖。值得注意的是,用于求解系數的公式 > > ![](https://img.kancloud.cn/c8/5c/c85c1c997ee73cc412ce25777b941754_1430x300.png) > > 將根據需要擴展到數據中的許多特征(除非存在任何共線性問題)。
                  <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>

                              哎呀哎呀视频在线观看