天天看点

【Tensor】(张量)的基本概念和操作0. 前言1. 正文

every blog every motto: Just live your life cause we don’t live twice.

0. 前言

有关张量的基本概念和操作

1. 正文

1.1 什么是tensor

不严谨的的说,标量、向量、矩阵、多维数组等都叫tensor,(和numpy类似,不同点在于内置了GPU加速,提高计算速度而已。)

【Tensor】(张量)的基本概念和操作0. 前言1. 正文

1.2 基本操作

1.2.1 创建tensor

import tensorflow as tf
           
【Tensor】(张量)的基本概念和操作0. 前言1. 正文
【Tensor】(张量)的基本概念和操作0. 前言1. 正文

可指定数据类型

【Tensor】(张量)的基本概念和操作0. 前言1. 正文
【Tensor】(张量)的基本概念和操作0. 前言1. 正文
【Tensor】(张量)的基本概念和操作0. 前言1. 正文

1.2.2 tensor属性

1.2.2.1 指定生成数据位置

方法一:

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

数据指定在cpu上,如下图

【Tensor】(张量)的基本概念和操作0. 前言1. 正文
with tf.device('gpu'):
    b = tf.range(4)
           
b.device
           

数据指定在gpu上

【Tensor】(张量)的基本概念和操作0. 前言1. 正文

**方法二:**使用默认位置

g.device
           

cpu上

【Tensor】(张量)的基本概念和操作0. 前言1. 正文
v.device
           
【Tensor】(张量)的基本概念和操作0. 前言1. 正文

1.2.2.2 改变数据位置

aa = a.gpu()
aa.device
           

数据由cpu改变成到gpu

【Tensor】(张量)的基本概念和操作0. 前言1. 正文
bb = b.cpu()
bb.device
           

数据有gpu改变成到cpu

【Tensor】(张量)的基本概念和操作0. 前言1. 正文

1.2.2.3 tensor -> numpy

tensor 转成 numpy

t = b.numpy()
t
           
【Tensor】(张量)的基本概念和操作0. 前言1. 正文

numpy查看维度

t.ndim
           
【Tensor】(张量)的基本概念和操作0. 前言1. 正文

1.2.2.4 查看tensor是几维

h = tf.range(5)
h
           
【Tensor】(张量)的基本概念和操作0. 前言1. 正文

查看维度如下图

【Tensor】(张量)的基本概念和操作0. 前言1. 正文

1.2.2.5 判断一个参数是否是tensor

方法一:(推荐使用)

【Tensor】(张量)的基本概念和操作0. 前言1. 正文

方法二:(不推荐使用)

1.2.2.6 类型转换

1. numpy -> tensor
a = np.arange(5)
a
           
【Tensor】(张量)的基本概念和操作0. 前言1. 正文
aa = tf.convert_to_tensor(a)
aa
           
【Tensor】(张量)的基本概念和操作0. 前言1. 正文
2. 改变tensor的数据类型
【Tensor】(张量)的基本概念和操作0. 前言1. 正文
【Tensor】(张量)的基本概念和操作0. 前言1. 正文

1.2.2.7 tf.Variable

a = tf.range(5)
a
           
【Tensor】(张量)的基本概念和操作0. 前言1. 正文
b = tf.Variable(a)
b
           
【Tensor】(张量)的基本概念和操作0. 前言1. 正文
b.trainable
           

如下图,可训练的,能求导

【Tensor】(张量)的基本概念和操作0. 前言1. 正文

如下图,判断错误,所以不推荐用isinstance判断是否是tensor

【Tensor】(张量)的基本概念和操作0. 前言1. 正文

推荐使用is_tensor进行判断

【Tensor】(张量)的基本概念和操作0. 前言1. 正文
【Tensor】(张量)的基本概念和操作0. 前言1. 正文

tensor-> numpy

【Tensor】(张量)的基本概念和操作0. 前言1. 正文
【Tensor】(张量)的基本概念和操作0. 前言1. 正文

对于标量,还有一种特殊是转换方式,如下图

【Tensor】(张量)的基本概念和操作0. 前言1. 正文
【Tensor】(张量)的基本概念和操作0. 前言1. 正文

继续阅读