• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    一小时学会TensorFlow2之基本操作1实例代码

    概述

    TensorFlow2 的基本操作和 Numpy 的操作很像. 今天带大家来看一看 TensorFlow 的基本数据操作.

    创建数据

    详细讲解一下 TensorFlow 创建数据的集中方法.

    创建常量

    tf.constant() 格式为:

    tf.constant(value,dtype,shape,name)
    

    参数:

    例子:

    # 创建常量1
    c1 = tf.constant(1)
    print(c1)
    
    # 创建常量, 类型为bool
    c2 = tf.constant([True, False])
    print(c2)
    
    # 创建常量1, 类型为float32, 大小为3*3
    c3 = tf.constant(0.1, shape=[2, 2])
    print(c3)
    
    # 创建常量, 类型为string字符串
    c4 = tf.constant("Hello World!")
    print(c4)
    

    输出结果:

    tf.Tensor(1, shape=(), dtype=int32)
    tf.Tensor([ True False], shape=(2,), dtype=bool)
    tf.Tensor(
    [[0.1 0.1]
    [0.1 0.1]], shape=(2, 2), dtype=float32)
    tf.Tensor(b'Hello World!', shape=(), dtype=string)

    创建数据序列

    格式:

    range(start, limit, delta=1, dtype=None, name='range')
    

    参数:

    例子:

    # 创建数字序列
    r1 = tf.range(4)
    print(r1)
    

    输出结果:

    tf.Tensor([0 1 2 3], shape=(4,), dtype=int32)

    创建图变量

    格式:

    tf.Variable.init(initial_value, trainable=True, collections=None, validate_shape=True, name=None)
    

    参数:

    参数名称 参数类型 参数含义
    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

    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.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

    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

    格式:

    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

    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: 根据索引从参数轴收集切片.

    格式:

    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

    正态分布

    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)

    转换成 numpy

    例子:

    # tensor转换成numpy
    array_tf = tf.ones([2,2])
    array_np = array_tf.numpy()
    print(array_np)
    

    输出结果:

    [[1. 1.]
    [1. 1.]]

    到此这篇关于一小时学会TensorFlow2之基本操作1的文章就介绍到这了,更多相关TensorFlow2基本操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • 一小时学会TensorFlow2之基本操作2实例代码
    • 一小时学会TensorFlow2之全连接层
    上一篇:Python用20行代码实现完整邮件功能
    下一篇:详解python opencv图像混合算术运算
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    一小时学会TensorFlow2之基本操作1实例代码 一小时,学会,TensorFlow2,之,