tensorflow急切執行概述 Eager execution is an imperative, define by run interface where operations are executed immediately as they are called from Python. T ...
tensorflow急切執行概述
Eager execution is an imperative, define-by-run interface where operations are executed immediately as they are called from Python. This makes it easier to get started with TensorFlow, and can make research and development more intuitive. A vast majority of the TensorFlow API remains the same whether eager execution is enabled or not. As a result, the exact same code that constructs TensorFlow graphs (e.g. using the layers API) can be executed imperatively by using eager execution. Conversely, most models written with Eager enabled can be converted to a graph that can be further optimized and/or extracted for deployment in production without changing code.
急切執行是一個必要的,逐個運行的界面,其中操作在從Python調用時立即執行。 這使得TensorFlow開始變得更容易,並且可以使研究和開發更加直觀。 無論是否啟用了急切執行,絕大多數TensorFlow API都保持不變。 通過使用急切執行,可以強制執行構造TensorFlow圖的完全相同的代碼。 相反,大多數使用Eager編寫的模型都可以轉換為可以進一步優化和/或提取的圖形,以便在不更改代碼的情況下在生產中進行部署。
代碼圖解分析如下
代碼
from __future__ import absolute_import, division, print_function
import numpy as np
import tensorflow as tf
import tensorflow.contrib.eager as tfe
# Set Eager API
print("Setting Eager mode...")
tfe.enable_eager_execution()
# Define constant tensors
print("Define constant tensors")
a = tf.constant(2)
print("a = %i" % a)
b = tf.constant(3)
print("b = %i" % b)
# Run the operation without the need for tf.Session
print("Running operations, without tf.Session")
c = a + b
print("a + b = %i" % c)
d = a * b
print("a * b = %i" % d)
# Full compatibility with Numpy
print("Mixing operations with Tensors and Numpy Arrays")
# Define constant tensors
a = tf.constant([[2., 1.],
[1., 0.]], dtype=tf.float32)
print("Tensor:\n a = %s" % a)
b = np.array([[3., 0.],
[5., 1.]], dtype=np.float32)
print("NumpyArray:\n b = %s" % b)
# Run the operation without the need for tf.Session
print("Running operations, without tf.Session")
c = a + b
print("a + b = %s" % c)
d = tf.matmul(a, b)
print("a * b = %s" % d)
print("Iterate through Tensor 'a':")
for i in range(a.shape[0]):
for j in range(a.shape[1]):
print(a[i][j])
參考點
https://github.com/brightyu/TensorFlow-Examples/blob/master/examples/