【Tensor】(张量)的基本概念和操作

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

0. 前言

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

1. 正文

1.1 什么是tensor

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

1.2 基本操作

1.2.1 创建tensor

import tensorflow as tf
tf.constant(1)

在这里插入图片描述

tf.constant(1.)

在这里插入图片描述
可指定数据类型

tf.constant(2.,dtype=tf.double)

在这里插入图片描述

tf.constant([True,False])

在这里插入图片描述

tf.constant('hello world.')

在这里插入图片描述

1.2.2 tensor属性

1.2.2.1 指定生成数据位置

方法一:

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

数据指定在cpu上,如下图
在这里插入图片描述

with tf.device('gpu'):
    b = tf.range(4)
b.device

数据指定在gpu上
在这里插入图片描述
**方法二:**使用默认位置

g = tf.constant([2])
g.device

cpu上
在这里插入图片描述

v = tf.range(3)
v.device

在这里插入图片描述

1.2.2.2 改变数据位置

aa = a.gpu()
aa.device

数据由cpu改变成到gpu
在这里插入图片描述

bb = b.cpu()
bb.device

数据有gpu改变成到cpu
在这里插入图片描述

1.2.2.3 tensor -> numpy

tensor 转成 numpy

t = b.numpy()
t

在这里插入图片描述
numpy查看维度

t.ndim

在这里插入图片描述

1.2.2.4 查看tensor是几维

h = tf.range(5)
h

在这里插入图片描述

tf.rank(h)

查看维度如下图
在这里插入图片描述

1.2.2.5 判断一个参数是否是tensor

a = tf.constant([1.])

方法一:(推荐使用)

tf.is_tensor(a)

在这里插入图片描述
方法二:(不推荐使用)

isinstance(a,tf.Tensor)

1.2.2.6 类型转换

1. numpy -> tensor
a = np.arange(5)
a

在这里插入图片描述

aa = tf.convert_to_tensor(a)
aa

在这里插入图片描述

2. 改变tensor的数据类型

在这里插入图片描述

tf.cast(aa,dtype=tf.float32)

在这里插入图片描述

1.2.2.7 tf.Variable

a = tf.range(5)
a

在这里插入图片描述

b = tf.Variable(a)
b

在这里插入图片描述

b.trainable

如下图,可训练的,能求导
在这里插入图片描述

isinstance(b,tf.Tensor)

如下图,判断错误,所以不推荐用isinstance判断是否是tensor
在这里插入图片描述
推荐使用is_tensor进行判断

tf.is_tensor(b)

在这里插入图片描述

isinstance(b,tf.Variable)

在这里插入图片描述
tensor-> numpy

b.numpy()

在这里插入图片描述

a = tf.ones([])
a.numpy()

在这里插入图片描述
对于标量,还有一种特殊是转换方式,如下图

int(a)

在这里插入图片描述

float(a)

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章