tensorflow2中的基本概念与常用函数
虽然我们在之前学习了如何手动实现神经网络,那样非常易于我么你理解神经网络的原理个结构。但是就“编写一个可用的高效的神经网络“而言,手动编写太过于低效。因此这里我们介绍一下TensorFlow,帮助我们快速搭建神经网络,本篇文章就先介绍一下tensorflow2中的基本概念与常用函数。
1.基本概念
Tensor
表示张量
,是多维数组、多维列表,用阶表示张量的维数。
阶数 维数 | eg | |
---|---|---|
0阶 | 标量 | 1 |
1阶 | 向量 | [1,2,3,…] |
2阶 | 矩阵 | [[1,2,3],[4,5,6],…] |
n阶 | 张量 | [[[[[… |
张量是任意阶数的数组的统称。
TensorFlow 中数据类型包括 32 位整型(tf.int32)、32 位浮点(tf.float32)、64 位 浮点(tf.float64)、布尔型(tf.bool)、字符串型(tf.string)
创建张量
- tf.constant(张量内容,dtype=数据类型(可选)),第一个参数表示张量内容, 第二个参数表示张量的数据类型。
import tensorflow as tf a=tf.constant([1,5],dtype=tf.int64)
print(a) # <tf.Tensor([1,5], shape=(2 , ) , dtype=int64)>
print(a.dtype) # <dtype: 'int64'>
print(a.shape) # (2,)
- 通过函数tf. convert_to_tensor(数据名,dtype=数据类型(可选)),将numpy格式化为Tensor格式。
import tensorflow as tf
import numpy as np
a = np.arange(0, 5)
b = tf.convert_to_tensor( a, dtype=tf.int64 )
-
用 tf.zeros(维度)创建全为 0 的张量
-
tf.ones(维度)创建全为 1 的张量
-
tf. fill(维度,指定值)创建全为指定值的张量。
其中维度参数部分,如一维则直接写个数,二维用[行,列]表示,多维用[n,m,j…] 表示
-
用 tf.random.normal (维度, mean=均值,stddev=标准差)生成正态分布的随机数,默认均值为 0,标准差为 1
-
用 tf.random.truncated_normal (维度,mean=均值,stddev=标准差)生成截断式正态分布的随机数,所谓截断式正态分布就是在 (µ - 2σ,u + 2σ ) 之内的随机数,这样的随机数更加集中。
-
利用 tf.random.uniform(维度,minval=最小值,maxval=最大值),生成指定维度的均匀 分布随机数,最小、最大值是前闭后开区间。
2.常用函数
- tf.cast (张量名,dtype=数据类型)强制将Tensor转换为该数据类型
x1 = tf.constant ([[1.0, 2.0, 3.0],[2.0,4.0,6.0]], dtype=tf.float64)
x2 = tf.cast (x1, tf.int32)
-
tf.reduce_min(张量名,axis=操作轴)计算张量维度上元素的最小值;利用tf.reduce_max(张量名,axis=操作轴)计算张量维度上元素的最大值。
-
tf.reduce_mean (张量名,axis=操作轴)计算张量沿着指定维度的平均值,tf.reduce_sum(张量名,axis=操作轴)计算张量沿着指定维度的和。
如不指定axis,则表示对所有元素进行操作。