• Tensor总结


    Tensor 在TF中用来存储数据,有点像Spark 中的RDD,用来表示一个集合,里面可能在计算后才有数据,它是TF中常用的数据结构,作为网络层的输入和输出。

    把python中的数据变成一个Tensor:

    import tensorflow as tf
    print(tf.constant([[1,1], [2,2]]))
    

    输出:

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

    生成服从正态分布的随机数:

    tensor_random = tf.random.truncated_normal(shape=[4, 3], mean=0, stddev=1)
    print(tensor_random)
    

    输出:

    tf.Tensor(
    [[-0.6169643  -0.48704767  0.64570683]
     [ 0.854015   -0.07537854  1.2956442 ]
     [ 1.3869987  -0.12490827  0.5543784 ]
     [-1.2535942   0.82831544 -1.324502  ]], shape=(4, 3), dtype=float32)
    

    还有一类型变量tf.Variable,可以通过Tensor构造:

    var1 = tf.Variable(tensor_random, name='var1')
    print(var1)
    

    输出:

    <tf.Variable 'var1:0' shape=(4, 3) dtype=float32, numpy=
    array([[-0.6169643 , -0.48704767,  0.64570683],
           [ 0.854015  , -0.07537854,  1.2956442 ],
           [ 1.3869987 , -0.12490827,  0.5543784 ],
           [-1.2535942 ,  0.82831544, -1.324502  ]], dtype=float32)>
    

    在tf1中使用变量前需要先初始化:

    sess = tf.Session()
    sess.run(tf.global_variables_initializer())  # 初始化
    print(sess.run(var1))
    

    表示稀疏矩阵使用tf.SparseTensor,有3个参数来描述稀疏矩阵:

    • indices 描述有值的位置的下标
    • values 描述各个有值位置的值
    • dense_shape 形状

    例如定一个2行32列,在第一行的第二列和第二行的第一列有值,分别是1,2:

    sparse_tensor = tf.SparseTensor(indices=[[0, 1], [1, 0]], values=[1, 2], dense_shape=[2, 32])
    print(tf.sparse.to_dense(sparse_tensor))  # 稀疏矩阵转换稠密矩阵
    

    输出:

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

    还有方法tf.sparse.from_dense把稠密矩阵转换为稀疏矩阵。

  • 相关阅读:
    如何在github上部署自己的前端项目
    springboot2.0整合springsecurity前后端分离进行自定义权限控制
    SpringDataJPA在Entity中常用的注解浅析
    JAVA算法之高级排序
    非关系型数据库MongoDB入门
    JAVA数据结构之哈希表
    JAVA算法之递归
    JAVA算法之简单排序
    JAVA数据结构之二叉树
    JAVA数据结构之链表
  • 原文地址:https://www.cnblogs.com/oaks/p/14043837.html
Copyright © 2020-2023  润新知