python如何获取tensor()数据类型中的值

目录
  • 获取tensor()数据类型的值
    • 一、问题
    • 二、解决方法
  • tensorflow笔记:tensor数据类型
    • 常见的数据类型载体
    • Tensor是什么
    • Tensor支持的类型
    • Tensor Property

获取tensor()数据类型的值

一、问题

只想要216.8973那个数。

二、解决方法

1、单个tensor

tensor.item()

就可以得到216.8973。

2、多个tensor

tensor.tolist()

完美解决~

tensorflow笔记:tensor数据类型

常见的数据类型载体

  • list
  • np.array
  • tf.tensor
  • list: 可以存储不同数据类型,缺点不适合存储较大的数据,如图片
  • np.array: 解决同类型大数据数据的载体,方便数据运算,缺点是在深度学习之前就设计好的,不支持GPU
  • tf.tensor:更适合深度学习,支持GPU

Tensor是什么

  • scalar: 1.1
  • vector:[1.1] , [1.1,2.2,……]
  • matrix:[[1,2,3,],[4,5,6],[7,8,9]]
  • torsor:rank > 2 (一般指的是维度大于2的数据)

但是,在tensorflow里面我们把数据的数据都叫tensor

Tensor支持的类型

  • int, float, double
  • bool
  • string

创建不同类型的Tensor

import tensorflow as tf
# 创建一个整型的数据
tf.constant(1)
# Out[3]: <tf.Tensor: shape=(), dtype=int32, numpy=1>
# 注意因为这里的constant就是一个普通的tensor,不要理解为常量了(TF1.0是代表一个常量)

# 创建一个浮点类型的数据
tf.constant(1.)
# Out[4]: <tf.Tensor: shape=(), dtype=float32, numpy=1.0>

# 若给定一个浮点型的数据,但是指定为int类型会报错
tf.constant(2.2,dtype=tf.int32)
# TypeError: Cannot convert 2.2 to EagerTensor of dtype int32

# 给一数指定双精度
tf.constant(2.,dtype=tf.double)
# Out[6]: <tf.Tensor: shape=(), dtype=float64, numpy=2.0>

# 创建bool类型的数据
tf.constant([True,False])
# Out[7]: <tf.Tensor: shape=(2,), dtype=bool, numpy=array([ True, False])>

# 创建字符串型数据(很少用)
tf.constant("hello,world")
# Out[8]: <tf.Tensor: shape=(), dtype=string, numpy=b'hello,world'>

Tensor Property

下面开始介绍Tensor常用的属性

tf.device

import tensorflow as tf
with tf.device("cpu"):
    a = tf.constant([1])
with tf.device("gpu"):
    b = tf.range(6)

print(a.device)
print(b.device)
# 数据在CPU和GPU上的转换
aa = a.gpu()
print(aa.device)
bb = b.cpu()
print(bb.device)

输出结果:

/job:localhost/replica:0/task:0/device:CPU:0
/job:localhost/replica:0/task:0/device:GPU:0
/job:localhost/replica:0/task:0/device:GPU:0
/job:localhost/replica:0/task:0/device:CPU:0

转换为numpy

c = tf.range(10)
#Out[14]: <tf.Tensor: shape=(10,), dtype=int32, numpy=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>
c.numpy()
#Out[15]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 

Tensor的维度与形状

d = tf.range(10)

d.shape
# Out[17]: TensorShape([10])

d.ndim
# Out[18]: 1

# 用rank查看tensor的维度(秩):返回的是一个tensor类型的数据
tf.rank(d)
# Out[19]: <tf.Tensor: shape=(), dtype=int32, numpy=1>
tf.rank(tf.ones([3,4,2]))
# Out[20]: <tf.Tensor: shape=(), dtype=int32, numpy=3>

# tf.name
# 是Tensorflow1.0中的概念,现在基本已经淘汰了

python中判断一个数据是不是Tensor

import numpy as np
import tensorflow as tf

a = tf.constant(1.)
b = tf.constant([True,False])
c = tf.constant("hello,world")
d = np.arange(4)

isinstance(a,tf.Tensor)
# Out[27]: True
tf.is_tensor(b)
# Out[28]: True
tf.is_tensor(d)
# Out[29]: False

a.dtype,b.dtype,c.dtype,d.dtype
# Out[32]: (tf.float32, tf.bool, tf.string, dtype('int32'))

a.dtype == tf.float32
Out[33]: True
c.dtype == tf.string
Out[34]: True

数据类型的转换

a = np.arange(5)
a.dtype
Out[36]: dtype('int32')
aa = tf.convert_to_tensor(a)  # numpy数据转化方法为.astype(np.int64)
# Out[38]: <tf.Tensor: shape=(5,), dtype=int32, numpy=array([0, 1, 2, 3, 4])>
aa = tf.convert_to_tensor(a, dtype=tf.float32)
# Out[40]: <tf.Tensor: shape=(5,), dtype=float32, numpy=array([0., 1., 2., 3., 4.], dtype=float32)>

# 用头tf.cast()数据转化
tf.cast(aa,dtype = tf.float32)
# Out[41]: <tf.Tensor: shape=(5,), dtype=float32, numpy=array([0., 1., 2., 3., 4.], dtype=float32)>
aaa = tf.cast(aa,dtype=tf.double)
# Out[43]: <tf.Tensor: shape=(5,), dtype=float64, numpy=array([0., 1., 2., 3., 4.])>
tf.cast(aaa,dtype=tf.int32)
# Out[44]: <tf.Tensor: shape=(5,), dtype=int32, numpy=array([0, 1, 2, 3, 4])>

# bool 与 int 的转化
b = tf.constant([0,1])
tf.cast(b,tf.bool)
# Out[46]: <tf.Tensor: shape=(2,), dtype=bool, numpy=array([False,  True])>
bb = tf.cast(b,dtype=tf.bool)
tf.cast(bb,tf.int32)
# Out[48]: <tf.Tensor: shape=(2,), dtype=int32, numpy=array([0, 1])>

tf.Variable

tf.Variable在tensorflow中相比tf.constan一样也是Tensor,tf.Variable特指Tensorflow中哪些可以优化的参数,比如自动求导。

tf.Variable可以理解为是专门为神经网络所设立的一个类型。

a = tf.range(5)
b = tf.Variable(a)
# Out[51]: <tf.Variable 'Variable:0' shape=(5,) dtype=int32, numpy=array([0, 1, 2, 3, 4])>
b.dtype
# Out[52]: tf.int32
b.name
# Out[53]: 'Variable:0'
b = tf.Variable(a, name = "input_data")
b.name
# Out[55]: 'input_data:0'
b.trainable
# Out[56]: True

isinstance(b,tf.Tensor)
# Out[57]: False
isinstance(b,tf.Variable)
# Out[58]: True
tf.is_tensor(b)
# Out[59]: True

b.numpy()
# Out[60]: array([0, 1, 2, 3, 4])

将Tensor类型转化为python中的数据类型

a = tf.ones([])
# Out[63]: <tf.Tensor: shape=(), dtype=float32, numpy=1.0>
a.numpy()
# Out[64]: 1.0
int(a)
# Out[65]: 1
float(a)
# Out[66]: 1.0

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python3.8安装tensorflow的简单方法步骤

    目录 以下内容是针对安装tensorflow-CPU版本的. 1.打开Anaconda promote 2.创建tensorflow的虚拟环境. 3.激活新建的TensorFlow环境,在命令行输入 4.使用国内的镜像安装,这里选用的是清华的镜像. 5.测试安装是否成功 总结 以下内容是针对安装tensorflow-CPU版本的. tensorflow已经支持Python3.8版本的安装.可以查看自己的Python版本信息,以及可以支持的tensorflow版本号.在Anaconda promo

  • python深度学习tensorflow入门基础教程示例

    目录 正文 1.编辑器 2.常量 3.变量 4.占位符 5.图(graph) 例子1:hello world 例子2:加法和乘法 例子3: 矩阵乘法 正文 TensorFlow用张量这种数据结构来表示所有的数据. 用一阶张量来表示向量,如:v = [1.2, 2.3, 3.5] ,如二阶张量表示矩阵,如:m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]],可以看成是方括号嵌套的层数. 1.编辑器 编写tensorflow代码,实际上就是编写py文件,最好找一个好用的编辑器

  • Python查看Tensor尺寸及查看数据类型的实现

    目录 查看Tensor尺寸及查看数据类型 Tensor尺寸查看 数据类型查看 Pytorch基本数据类型tensor Python和Pytorch数据类型对应 创建tensor的方法 一些常用的生成tensor方法 tensor的切片与索引 tensor的维度变换(重点) tensor的叠加和分割 tensor的数学运算 tensor的统计相关操作 查看Tensor尺寸及查看数据类型 Tensor尺寸查看 命令: x.shape 例子: input = torch.randn(20,16,50,

  • python深度学习tensorflow训练好的模型进行图像分类

    目录 正文 随机找一张图片 读取图片进行分类识别 最后输出 正文 谷歌在大型图像数据库ImageNet上训练好了一个Inception-v3模型,这个模型我们可以直接用来进来图像分类. 下载链接: https://pan.baidu.com/s/1XGfwYer5pIEDkpM3nM6o2A 提取码: hu66 下载完解压后,得到几个文件: 其中 classify_image_graph_def.pb 文件就是训练好的Inception-v3模型. imagenet_synset_to_huma

  • python如何获取tensor()数据类型中的值

    目录 获取tensor()数据类型的值 一.问题 二.解决方法 tensorflow笔记:tensor数据类型 常见的数据类型载体 Tensor是什么 Tensor支持的类型 Tensor Property 获取tensor()数据类型的值 一.问题 只想要216.8973那个数. 二.解决方法 1.单个tensor tensor.item() 就可以得到216.8973. 2.多个tensor tensor.tolist() 完美解决~ tensorflow笔记:tensor数据类型 常见的数

  • PHP获取input输入框中的值去数据库比较显示出来

    前端: <!--商品查询--> <input type="text" name="bianhao" value="" maxlength="10" size="10" style="width:100px; margin:0px 0px 0px 25px;height:20px;"/> <input type="submit" value

  • Python爬虫获取整个站点中的所有外部链接代码示例

    收集所有外部链接的网站爬虫程序流程图 下例是爬取本站python绘制条形图方法代码详解的实例,大家可以参考下. 完整代码: #! /usr/bin/env python #coding=utf-8 import urllib2 from bs4 import BeautifulSoup import re import datetime import random pages=set() random.seed(datetime.datetime.now()) #Retrieves a list

  • vue中子组件的methods中获取到props中的值方法

    父子组件通信 这个官网很清楚,也很简单,父组件中使用v-bind绑定传送,子组件使用props接收即可 例如: 父组件中 <template> <div> <head-top></head-top> <section class="data_section"> <header class="chart-title">数据统计</header> <el-row :gutter=&

  • jquery获取input输入框中的值

    如何用javascript获取input输入框中的值,js/jq通过name.id.class获取input输入框中的value 先准备一段 HTML <input type="text" id="CN_NAME" name="CN_NAME" class="CN_NAME"> 一.jquery获取input文本框中的值 通过 name var name = $('input[name="CN_NAME&

  • js与jquery获取input输入框中的值实例讲解

    如何用javascript获取input输入框中的值,js/jq通过name.id.class获取input输入框中的value 先准备一段 HTML <input type="text" name"username" id="user" placeholder="用户名" class="uusr"><br> 一.jquery获取input文本框中的值 通过 name: $('inp

  • Python 实现过滤掉列表中唯一值

    目录 1.filter_unique 2.collections.Counter 3.列表推导式 4.filter_non_unique 1.filter_unique from collections import Counter def filter_unique(lst): return [item for item, count in Counter(lst).items() if count > 1] # EXAMPLES filter_unique([1, 2, 2, 3, 4, 4

  • Vuex如何获取getter对象中的值(包括module中的getter)

    目录 Vuex获取getter对象中的值 1.直接从根实例获取 2.使用mapGetters取值 3.使用module中的getter 计算属性获取的getter值需要刷新才能更新 描述 解决 Vuex获取getter对象中的值 getter取值与state取值具有相似性 1.直接从根实例获取 // main.js中,把store注册在根实例下,可使用this.$stroe.getters直接取值 computed: {   testNum1() {     return this.$store

  • vue使用refs获取嵌套组件中的值过程

    目录 使用refs获取嵌套组件的值 vue使用ref的好处 使用refs获取嵌套组件的值 功能简介: 1.父组件包含zujian1,而zujian1又包含zujian2 2.zujian2绑定一个输入参数 <input ref="query" v-model="query" @keypress="doSearch"/> 3.父组件获得输入框中的值,通过this.$refs.组件名来获取dom元素,多层嵌套,要调多次 // 记录输入框的

  • python dataframe实现统计行列中零值的个数

    目录 dataframe统计行列中零值的个数 按行统计,返回为一个series: 找出列表中小于0的数 1.列表推导式 2.filte()函数 dataframe统计行列中零值的个数 按行统计,返回为一个series: (df == 0).astype(int).sum(axis=1) 找出列表中小于0的数 1.列表推导式 lst = [2,4,-7,19,-2,-1,45] lst_1 = [i for i in lst if i <0] print(lst_1) 2.filte()函数 ls

随机推荐