机器学习系列-tensorflow-01-急切执行API

Posted 既生喻何生亮(Bright)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习系列-tensorflow-01-急切执行API相关的知识,希望对你有一定的参考价值。

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/

以上是关于机器学习系列-tensorflow-01-急切执行API的主要内容,如果未能解决你的问题,请参考以下文章

推荐算法工程师技术栈系列机器学习深度学习--强化学习

实例学习ansible系列从Helloworld深度解析Ansible执行原理

机器学习系列-tensorflow-02-基本操作运算

Keras自定义层和急切的执行

自定义指标仅适用于急切执行

RuntimeError: tf.placeholder() 与急切执行不兼容