<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 1.12。從 JIT 代碼 中回調到 Python 解釋器 > 原文: [http://numba.pydata.org/numba-doc/latest/user/withobjmode.html](http://numba.pydata.org/numba-doc/latest/user/withobjmode.html) 當 nopython-mode 函數需要回調到 Python 解釋器來調用無法由 Numba 編譯的代碼時,有一些罕見但真實的情況。此類案件包括: * 記錄長期運行 JIT 函數的進度; * 使用 Numba 當前不支持的數據結構; * 使用 Python 調試器在 JIT 代碼中調試。 當 Numba 回調到 Python 解釋器時,必須發生以下情況: * 獲得 GIL; * 將本機表示中的值轉換回 Python 對象; * 回調 Python 解釋器; * 將返回值從 Python 代碼轉換為本機表示; * 發布 GIL。 這些步驟可能很昂貴。用戶**不應該**依賴于此處描述的性能關鍵路徑上的功能。 ## 1.12.1。 `objmode`上下文管理器 警告 此功能很容易被誤用。在使用此功能之前,用戶應首先考慮其他方法以實現其預期目標。 ```py numba.objmode(*args, **kwargs) ``` 創建一個上下文管理器,用于在 jitted 函數內部輸入 _ 對象模式 _ 以使用解釋器功能。 with-context 的主體被提升到一個在 _object-mode_ 中編譯的函數。此轉換過程受到限制,無法處理所有可能的 Python 代碼。但是,用戶可以將復雜的邏輯包裝在另一個 Python 函數中,然后由解釋器執行。 將此用作僅接受關鍵字參數的函數。參數名稱必須與 with-block 的輸出變量相對應。它們各自的值是表示預期類型的??字符串。退出 with-context 時,輸出變量將根據注釋強制轉換為預期的 nopython 類型。此過程與將 Python 對象傳遞到 nopython 函數的參數相同。 例: ```py import numpy as np from numba import njit, objmode def bar(x): # This code is executed by the interpreter. return np.asarray(list(reversed(x.tolist()))) @njit def foo(): x = np.arange(5) y = np.zeros_like(x) with objmode(y='intp[:]'): # annotate return type # this region is executed by object-mode. y += bar(x) return y ``` 注意 已知限制: * with-block 無法使用傳入的列表對象。 * with-block 無法使用傳入的函數對象。 * with-block 不能`yield`,`break`,`return`或`raise`,執行將立即離開 with-block。 * with-block 不能包含帶有語句的&lt;cite&gt;。&lt;/cite&gt; * 隨機數發生器狀態不同步;即 nopython-mode 和 object-mode 使用不同的 RNG 狀態。 注意 在非 python 模式之外使用時,context-manager 無效。 警告 此功能是實驗性的。支持的功能可能會隨著或不通知而改變。
                  <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>

                              哎呀哎呀视频在线观看