在 TensorFlow 2.0 中,會話的概念已被刪除,取而代之的是即時執行,因為即時執行允許立即評估並更輕鬆地調試操作,使過程更加直觀和 Pythonic。這項變更代表了 TensorFlow 的運作方式以及與使用者互動方式的重大轉變。
在 TensorFlow 1.x 中,會話用於建立計算圖,然後在會話環境中執行它。這種方法很強大,但有時很麻煩,特別是對於初學者和來自命令式程式設計背景的使用者來說。透過立即執行,操作可以立即執行,無需明確建立會話。
會話的刪除簡化了 TensorFlow 工作流程,使其與標準 Python 程式設計更加一致。現在,使用者可以更自然地編寫和執行 TensorFlow 程式碼,類似於編寫常規 Python 程式碼。此變更增強了使用者體驗並降低了新使用者的學習曲線。
如果您在 TensorFlow 2.0 中嘗試執行某些依賴會話的練習程式碼時遇到 AttributeError,這是因為會話不再受支援。要解決此問題,您需要重構程式碼以利用急切執行。透過這樣做,您可以確保您的程式碼與 TensorFlow 2.0 相容,並利用即時執行提供的優勢。
以下是範例,說明在 TensorFlow 1.x 中使用會話和在 TensorFlow 2.0 中使用 eager execution 之間的差異:
TensorFlow 1.x(使用會話):
python import tensorflow as tf # Build a graph a = tf.constant(2) b = tf.constant(3) c = tf.add(a, b) # Create a session and run the graph with tf.Session() as sess: result = sess.run(c) print(result)
TensorFlow 2.0(使用即時執行):
python import tensorflow as tf # Enable eager execution tf.config.run_functions_eagerly(True) # Perform operations without the need for a session a = tf.constant(2) b = tf.constant(3) c = tf.add(a, b) print(c)
透過更新練習程式碼以利用 Eager Execution,可以確保與 TensorFlow 2.0 的兼容性並從其簡化的工作流程中受益。
TensorFlow 2.0 中刪除會話以支援即時執行代表了一項增強框架可用性和簡單性的變更。透過採用 Eager Execution,使用者可以更自然、更有效率地編寫 TensorFlow 程式碼,從而獲得更無縫的機器學習開發體驗。
最近的其他問題和解答 EITC/AI/GCML Google雲機器學習:
- 什麼是文字轉語音 (TTS) 以及它如何與人工智慧配合使用?
- 在機器學習中處理大型資料集有哪些限制?
- 機器學習可以提供一些對話幫助嗎?
- 什麼是 TensorFlow 遊樂場?
- 更大的數據集實際上意味著什麼?
- 演算法的超參數有哪些範例?
- 什麼是集成學習?
- 如果選擇的機器學習演算法不合適怎麼辦?
- 機器學習模型在訓練過程中是否需要監督?
- 基於神經網路的演算法中使用的關鍵參數是什麼?
查看 EITC/AI/GCML Google Cloud Machine Learning 中的更多問題和解答
更多問題及解答:
- 領域: 人工智能
- 程序: EITC/AI/GCML Google雲機器學習 (前往認證計劃)
- 課: Google機器學習工具 (去相關課程)
- 主題: 在TensorFlow中打印報表 (轉到相關主題)