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
可指定数据类型
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.device
cpu上
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
查看维度如下图
1.2.2.5 判断一个参数是否是tensor
方法一:(推荐使用)
方法二:(不推荐使用)
1.2.2.6 类型转换
1. numpy -> tensor
a = np.arange(5)
a
aa = tf.convert_to_tensor(a)
aa
2. 改变tensor的数据类型
1.2.2.7 tf.Variable
a = tf.range(5)
a
b = tf.Variable(a)
b
b.trainable
如下图,可训练的,能求导
如下图,判断错误,所以不推荐用isinstance判断是否是tensor
推荐使用is_tensor进行判断
tensor-> numpy
对于标量,还有一种特殊是转换方式,如下图