参数名称 | 参数类型 | 参数含义 |
initial_value | 所有可以转换为 Tensor 的类型 | 变量的初始值 |
trainable | bool | 如果为 True, 会把它加入到 GraphKeys.TRAINABLE_VARIABLES, 才能对它使用 Optimizer |
collections | list | 指定该图变量的类型, 默认为 [GraphKeys.GLOBAL_VARIABLES] |
validate_shape | bool | 如果为 False, 则不进行类型和维度检查 |
name | string | 数据名称 |
例子:
# 创建图变量 v1 = tf.Variable(tf.range(6)) print(v1) print(isinstance(v1, tf.Tensor)) # False print(isinstance(v1, tf.Variable)) # True print(tf.is_tensor(v1)) # True
输出结果:
False
True
True
tf.zeros 可以帮助我们创建一个所有参数为 0 的 tensor 对象. 类似于 np.zeros.
格式:
tf.zeros(shape, dtype=tf.dtypes.float32, name=None)
参数:
例子:
# 创建参数为0的tensor z1 = tf.zeros([1]) print(z1) z2 = tf.zeros([3, 3]) print(z2)
输出结果:
tf.Tensor([0.], shape=(1,), dtype=float32)
tf.Tensor(
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]], shape=(3, 3), dtype=float32)
tf.ones 用法和 tf.zeros 一样, 可以帮助我们创建一个所有参数为 1 的 tensor 对象.
tf.ones(shape, dtype=tf.dtypes.float32, name=None)
参数:
例子:
# 创建参数为1的tensor o1 = tf.ones([1]) print(o1) o2 = tf.ones([3, 3]) print(o2)
输出结果:
tf.Tensor([1.], shape=(1,), dtype=float32)
tf.Tensor(
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]], shape=(3, 3), dtype=float32)
tf.zeros_like 可以帮我们创建一个与给定 tensor 类型大小一致的 tensor. 类似 np.zeros_like.
格式:
tf.zeros_like(tensor, dype=None, name=None)
参数:
例子:
# tf.zeros_like t1 = tf.range(6) z1 = tf.zeros_like(t1) print(z1)
输出结果:
tf.Tensor([0 0 0 0 0 0], shape=(6,), dtype=int32)
格式:
tf.ones_like(tensor, dype=None, name=None)
参数:
例子:
# tf.ones_like t1 = tf.range(6) o1 = tf.ones_like(t1) print(o1)
输出结果:
tf.Tensor([1 1 1 1 1 1], shape=(6,), dtype=int32)
tf.fill 可以帮助我们创建一个指定形状和内容的 tensor.
格式:
tf.fill(shape, value, name=None)
参数:
例子:
# tf.fill f1 = tf.fill([2, 2], 0) print(f1) f2 = tf.fill([3, 3], 6) print(f2)
输出结果:
[[0 0]
[0 0]], shape=(2, 2), dtype=int32)
tf.Tensor(
[[6 6 6]
[6 6 6]
[6 6 6]], shape=(3, 3), dtype=int32)
tf.gather: 根据索引从参数轴收集切片.
格式:
tf.gather( params, indices, validate_indices=None, axis=None, batch_dims=0, name=None )
参数:
例子:
input =[ [[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]], [[5, 5, 5], [6, 6, 6]]], [[[7, 7, 7], [8, 8, 8]], [[9, 9, 9], [10, 10, 10]], [[11, 11, 11], [12, 12, 12]]], [[[13, 13, 13], [14, 14, 14]], [[15, 15, 15], [16, 16, 16]], [[17, 17, 17], [18, 18, 18]]] ] output=tf.gather(input, [0,2],axis=0)
输出结果:
tf.Tensor(
[[[[ 1 1 1]
[ 2 2 2]][[ 3 3 3]
[ 4 4 4]][[ 5 5 5]
[ 6 6 6]]]
[[[13 13 13]
[14 14 14]][[15 15 15]
[16 16 16]][[17 17 17]
[18 18 18]]]], shape=(2, 3, 2, 3), dtype=int32)
tf.random.normal 可以帮我们创建随机数服从正态分布.
格式:
tf.random.normal( shape, mean=0.0, stddev=1.0, dtype=tf.dtypes.float32, seed=None, name=None )
参数:
例子:
# tf.normal n1 = tf.random.normal([2, 2], mean = 1, stddev=1, seed=0) print(n1)
输出结果:
tf.Tensor(
[[0.60084236 3.1044393 ]
[1.1710722 1.5465181 ]], shape=(2, 2), dtype=float32)
tf.random.uniform 可以帮我们创建随机数服从均匀分布.
格式:
tf.random.uniform( shape, minval=0, maxval=None, dtype=tf.dtypes.float32, seed=None, name=None )
参数:
例子:
# tf.uniform u1 = tf.random.uniform([2, 2], minval=0, maxval=1) print(u1)
输出结果:
tf.Tensor(
[[0.7382153 0.6622821 ]
[0.22840345 0.09706533]], shape=(2, 2), dtype=float32)
tf.random.shuffle 可以帮助我们打乱张量的顺序.
格式:
tf.random.shuffle( value, seed=None, name=None )
参数:
例子:
# tf.shuffle s1 = tf.random.shuffle(tf.range(10)) print(s1)
输出结果:
tf.Tensor([1 7 3 9 2 6 8 5 4 0], shape=(10,), dtype=int32)
tf.rank 的用法和 np.ndim 基本一样.
格式:
rank(input, name=None) # 类似np.ndim
参数:
例子:
# 获取张量维度 t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]]) print(tf.rank(t))
输出结果:
tf.Tensor(3, shape=(), dtype=int32)
格式:
tf.is_tensor(input)
参数:
例子:
# 判断是否为张量 a = tf.constant([1, 2, 3]) b = tf.constant([True, False, False]) c = tf.constant("Hello World") d = np.arange(6) print(a) print(tf.is_tensor(a)) print(b) print(tf.is_tensor(b)) print(c) print(tf.is_tensor(c)) print(d) print(tf.is_tensor(d))
输出结果:
tf.Tensor([1 2 3], shape=(3,), dtype=int32)
True
tf.Tensor([ True False False], shape=(3,), dtype=bool)
True
tf.Tensor(b'Hello World', shape=(), dtype=string)
True
[0 1 2 3 4 5]
False
格式:
tf.convert_to_tensor(value, dtype=None, dtype_hint=None, name=None)
参数:
例子:
# 转换成张量 array = np.arange(6) print(array.dtype) array_tf = tf.convert_to_tensor(array) print(array_tf)
输出结果:
int32
tf.Tensor([0 1 2 3 4 5], shape=(6,), dtype=int32)
格式:
cast(x, dtype, name=None)
参数:
例子:
# 装换数据类型 array_tf = tf.constant(np.arange(6)) print(array_tf) array_tf = tf.cast(array_tf, dtype=tf.float32) print(array_tf) tf_bool = tf.cast(tf.constant([False, True]), dtype=tf.int32) print(tf_bool)
输出结果:
tf.Tensor([0 1 2 3 4 5], shape=(6,), dtype=int32)
tf.Tensor([0. 1. 2. 3. 4. 5.], shape=(6,), dtype=float32)
tf.Tensor([0 1], shape=(2,), dtype=int32)
例子:
# tensor转换成numpy array_tf = tf.ones([2,2]) array_np = array_tf.numpy() print(array_np)
输出结果:
[[1. 1.]
[1. 1.]]
到此这篇关于一小时学会TensorFlow2之基本操作1的文章就介绍到这了,更多相关TensorFlow2基本操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!