[TOC]

概述

Tensorflow2.0将动态图机制作为默认的模式,删除了大量过时和重复的API。将tf.keras作为用于构建和训练模型的标准高阶API

Tensorflow2.0支持更多的平台和语言。因为Tensorflow2.0更加容易学习和应用。

Tensor

Tensorflow中的Tensor表示张量。其实就是多维数组

python中的列表list

Numpy中的数组对象ndarray

他们都可以作为数据的载体。他们之间有什么区别呢?

Tensorflow中的基本运算、参数命名、运算规则、API的设计等与numpy非常相近

创建(Tensor)张量

张量由Tensor类实现。每个张量都是一个Tensor对象

通过tf.constant()函数创建张量

1
2
3
4
5
6
7
tf.constant(value,dtype,shape)
# value:数字、pyton列表、Numpy数组
# dtype:元素的数据类型
# shape:张量的形状

#下面的demo例子
tf.constant([[1,2],[3,4]])

Tensorflow所有的张量多可以tensor.numpy()方法得到对应的数组

张量数据类型

image-20210717074349139

Numpy数组作为张量参数

1
2
3
4
5
6
# Numpy数组作为张量参数
tf.constant(np.array([1,2]))
# numpy创建浮点数组时候,默认的浮点型是64位浮点数
# 当使用numpy数组创建张量时候。tensorflow会接受数组元素的数据类型,使用64位浮点数保存数据
tf.constant(np.array([1.0,2.0]))
tf.constant(np.array([1.0,2.0]),dtype=tf.float32)
1
2
3
4
5
6
7
8
9

# tf.constant的函数,改变张量中元素的数据类型
# tf.cast(x,dtype)

a = tf.constant(np.array([1,2]))
b = tf.cast(a,dtype=tf.float32)
b.dtype
# 结果输出:
# tf.float32

tf.convert_to_tensor()函数

1
2
3
4
5
6
7
8
9
10
11
12
# tf.convert_to_tensor(数组/列表/数字/布尔类型/字符串)
na = np.arange(12).reshape(3,4)
print(na)
ta = tf.convert_to_tensor(na)
type(na)
type(ta)

# 结果输出:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
tensorflow.python.framework.ops.Tensor

is_tensor函数

张量创建总结

Tensor对象属性

Tensor对象的方法

shape方法

获取张量的形状

size方法

获取张量的元素总数

rank方法

获取张量的维度

Tensor张量和NumPy数组

在Tensorflow中,所有的运算都是在张量之间进行的

NumPy数组仅仅是作为输入和输出的时候使用。运算之前使用NumPy数组来生层Tensort张量。

张量可以运行于CPU,也可以运行于GPU和TPU。而NumPy数组只能够哎CPU中运行。