Tensorflow 简明教程

TensorFlow - Basics

在本章中,我们将学习 TensorFlow 的基础知识。我们将首先了解张量的基础数据结构。

In this chapter, we will learn about the basics of TensorFlow. We will begin by understanding the data structure of tensor.

Tensor Data Structure

在 TensorFlow 语言中,张量用作基础数据结构。张量表示任意流图(称为数据流图)中的连接边缘。张量被定义为数组或列表的多维形式。

Tensors are used as the basic data structures in TensorFlow language. Tensors represent the connecting edges in any flow diagram called the Data Flow Graph. Tensors are defined as multidimensional array or list.

张量由以下三个参数标识:

Tensors are identified by the following three parameters −

Rank

张量中描述的维度单位称为秩。它标识张量的维度数量。张量的秩可以描述为已定义张量的阶次或 n 维。

Unit of dimensionality described within tensor is called rank. It identifies the number of dimensions of the tensor. A rank of a tensor can be described as the order or n-dimensions of a tensor defined.

Shape

行数和列数共同定义了张量的形状。

The number of rows and columns together define the shape of Tensor.

Type

类型描述了分配给张量元素的数据类型。

Type describes the data type assigned to Tensor’s elements.

用户需要考虑以下活动来构建张量:

A user needs to consider the following activities for building a Tensor −

  1. Build an n-dimensional array

  2. Convert the n-dimensional array.

tensor data structure

Various Dimensions of TensorFlow

TensorFlow 包含多个维度。这些维度简述如下:

TensorFlow includes various dimensions. The dimensions are described in brief below −

One dimensional Tensor

一维张量是包含同一数据类型的一组值的常规数组结构。

One dimensional tensor is a normal array structure which includes one set of values of the same data type.

Declaration

Declaration

>>> import numpy as np
>>> tensor_1d = np.array([1.3, 1, 4.0, 23.99])
>>> print tensor_1d

带有输出的实施在以下屏幕截图中显示:

The implementation with the output is shown in the screenshot below −

one dimensional tensor

元素的索引与 Python 列表相同。第一个元素从索引 0 开始;要通过索引打印值,您只需要提及索引号。

The indexing of elements is same as Python lists. The first element starts with index of 0; to print the values through index, all you need to do is mention the index number.

>>> print tensor_1d[0]
1.3
>>> print tensor_1d[2]
4.0
declaration

Two dimensional Tensors

数组序列用于创建“二维张量”。

Sequence of arrays are used for creating “two dimensional tensors”.

二维张量的创建如下所述 −

The creation of two-dimensional tensors is described below −

two dimensional tensors

以下是创建二维数组的完整语法 −

Following is the complete syntax for creating two dimensional arrays −

>>> import numpy as np
>>> tensor_2d = np.array([(1,2,3,4),(4,5,6,7),(8,9,10,11),(12,13,14,15)])
>>> print(tensor_2d)
[[ 1 2 3 4]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
>>>

可以用行号和指定为索引号的列号来追踪二维张量的特定元素。

The specific elements of two dimensional tensors can be tracked with the help of row number and column number specified as index numbers.

>>> tensor_2d[3][2]
14
two dimensional tensors tracked

Tensor Handling and Manipulations

在本节中,我们将学习张量处理和操作。

In this section, we will learn about Tensor Handling and Manipulations.

首先,我们考虑以下代码 −

To begin with, let us consider the following code −

import tensorflow as tf
import numpy as np

matrix1 = np.array([(2,2,2),(2,2,2),(2,2,2)],dtype = 'int32')
matrix2 = np.array([(1,1,1),(1,1,1),(1,1,1)],dtype = 'int32')

print (matrix1)
print (matrix2)

matrix1 = tf.constant(matrix1)
matrix2 = tf.constant(matrix2)
matrix_product = tf.matmul(matrix1, matrix2)
matrix_sum = tf.add(matrix1,matrix2)
matrix_3 = np.array([(2,7,2),(1,4,2),(9,0,2)],dtype = 'float32')
print (matrix_3)

matrix_det = tf.matrix_determinant(matrix_3)
with tf.Session() as sess:
   result1 = sess.run(matrix_product)
   result2 = sess.run(matrix_sum)
   result3 = sess.run(matrix_det)

print (result1)
print (result2)
print (result3)

Output

上述代码将生成以下输出 −

The above code will generate the following output −

tensor handling and manipulations

Explanation

我们在上述源代码中生成了多维数组。现在,重要的是要理解我们创建了管理张量的图形和会话,并生成了适当的输出。借助图形,我们有指定张量之间数学计算的输出。

We have created multidimensional arrays in the above source code. Now, it is important to understand that we created graph and sessions, which manage the Tensors and generate the appropriate output. With the help of graph, we have the output specifying the mathematical calculations between Tensors.