zoukankan      html  css  js  c++  java
  • Tensor数据类型

    Tensor数据类型

    • list: [1,1.2,'hello'] ,存储图片占用内存非常大
    • np.array,存成一个静态数组,但是numpy在深度学习之前就出现了,所以不适合深度学习
    • tf.Tensor,为了弥补numpy的缺点,更多的是为了深度学习而生
    • tensor:
      • scalar:标量,1.1
      • vector:向量,[1.1],[1.1,2.2,...]
      • matrix: 矩阵,[[1.1,2.2],[3.3,4.4]]
      • tensor:rank>2
    • 数据类型:
      • Int, float, double
      • bool
      • string
    • 定义tensor
    tf.constant(1)  # 定义常量,普通的tensor
    tf.constant(1.)  # 定义常量,普通的tensor
    tf.constant([True, False])  # 定义常量,普通的tensor
    tf.constant('hello nick')
    

    属性

    with tf.device('cpu'):
      a = tf.constant([1])
    with tf.device('gpu'):
    	b = tf.constant([1])
    

    a.device # 设备属性
    a.gpu() # cpu转gpu
    a.numpy() # 获取numpy数据类型
    a.shape # 获取a的属性
    a.ndim # 获取维度
    tf.rank(a) # 获取维度
    a.name # 1.+历史遗留问题

    数据类型判断

    instance(a,tf.Tensor) # 判断是否为tensor
    tf.is_tensor(a)  # 判断是否为tensor
    a.dtype,b.dtype,c.dtype  # 判断数据类型
    

    数据类型转换

    a = np.arange(5)
    aa = tf.convert_to_tensor(a,dtype=tf.int32) # numpy转tensor
    

    tf.cast(aa,dtype=tf.float32) # tensor之间数据类型转换

    # int --》 bool
    b = tf.constant([0,1])
    tf.cast(b,dtype=tf.bool) # int --》bool

    # tf.Variable
    a = tf.range(5)
    b = tf.Variable(a) # tensor转为Variable后具有求导的特性,即自动记录a的梯度相关信息
    b.name # Variable:0

    b = tf.Variable(a, name='input_data')
    b.name # input_data:0
    b.trainable # True

    isinstance(b,tf.Tensor) # False
    isinstance(b,tf.Variable) # True
    tf.is_tensor(b) # True # 推荐使用

    tensor转numpy

    a= tf.range(5)
    a.numpy()
    

    # a必须是scalar
    a = tf.ones([])
    a.numpy()
    int(a)
    float(a)

  • 相关阅读:
    EMQ ---payload
    EMQ --集成搭建
    chome 离线安装包地址
    EMQ ---问题集
    EMQ学习---客户链接资源消耗
    EMQ学习 ---集群
    EMQ 学习---MQTT消息QoS
    EMQ 学习---订阅$SYS主题,捕获客户端上下线消息
    EMQ学习笔记---Clean Session和Retained Message
    elasticsearch学习网站
  • 原文地址:https://www.cnblogs.com/abdm-989/p/14123186.html
Copyright © 2011-2022 走看看