zoukankan      html  css  js  c++  java
  • 张量的生成

    1.基本概念

    TensorFlow 中的 Tensor 表示张量,是多维数组、多维列表,用阶表示张量的维数。
    • 0 阶张量叫做标量,表示的是一个单独的数,如 123;
    • 1 阶张量叫作向量,表示的是一个一维数组,如[1,2,3];
    • 2 阶张量叫作矩阵,表示的是一个二维数组,它可以有 i 行 j 列个元素,每个元素用它的行号和列号共同索引到,如在[[1,2,3],[4,5,6],[7,8,9]]中,2 的索引即为第 0 行第 1 列。

    张量的阶数与方括号的数量相同,0 个方括号即为 0 阶张量,1 个方括号即为 1 阶张量。故张量可以表示0阶到 n 阶的数组。也可通过 reshape 的方式得到更高维度数组,举例如下:

    TensorFlow 中数据类型包括 32 位整型(tf.int32)、32 位浮点(tf.float32)、64 位浮点(tf.float64)、布尔型(tf.bool)、字符串型(tf.string)
     
    2.创建一个张量(Tensor)

     

     

     (3)可采用不同函数创建不同值的张量。

    如用

    • tf. zeros(维度)创建全为 0 的张量,
    • tf.ones(维度)创建全为 1 的张量,
    • tf. fill(维度,指定值)创建全为指定值的张量。
    其中维度参数部分,
    一维则直接写个数,
    二维用[行,列]表示,
    多维用[n,m,j..]表示。
    举例如下:

     

    (4)可采用不同函数创建符合不同分布的张量。
    • 用 tf. random.normal (维度,mean=均值,stddev=标准差)生成正态分布的随机数,默认均值为 0,标准差为 1;
    • 用 tf. random.truncated_normal (维度,mean=均值,stddev=标准差)生成截断式正态分布的随机数,能使生成的这些随机数更集中一些,如果随机生成数据的取值在 (µ - 2σ,u + 2σ ) 之外则重新进行生成,保证了生成值在均值附近;µ表示均值,σ表示标准差
    • 利用 tf.random. uniform(维度,minval=最小值,maxval=最大值),生成指定维度的均匀分布随机数,用 minval 给定随机数的最小值,用 maxval 给定随机数的最大值,最小、最大值是前闭后开区间。

    举例如下:

    d = tf.random.normal ([2, 2], mean=0.5, stddev=1)
    print(d)
    e = tf.random.truncated_normal ([2, 2], mean=0.5, stddev=1)
    print(e)
    f = tf.random.uniform([2, 2], minval=0, maxval=1)
    print(f)

  • 相关阅读:
    剑指offer(14)链表中倒数第K个节点
    剑指offer(13)调整数组顺序使奇数位于偶数前面
    跨域资源共享CORS
    同源政策
    剑指offer(12)数值的整数次方
    剑指offer(11)二进制中1的个数
    面试金典——交点
    LeetCode——简化路径
    LeetCode——跳跃游戏 I-II
    LeetCode——最大矩形
  • 原文地址:https://www.cnblogs.com/GumpYan/p/13549140.html
Copyright © 2011-2022 走看看