吴裕雄--天生自然TensorFlow2教程: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)

原文地址:https://www.cnblogs.com/tszr/p/12104220.html

时间: 2024-08-29 22:36:01

吴裕雄--天生自然TensorFlow2教程:Tensor数据类型的相关文章

吴裕雄--天生自然TensorFlow2教程:测试(张量)- 实战

import tensorflow as tf from tensorflow import keras from tensorflow.keras import datasets import os # do not print irrelevant information # os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # x: [60k,28,28], [10,28,28] # y: [60k], [10k] (x, y), (x_test, y_te

吴裕雄--天生自然TensorFlow2教程:numpy [ ] 索引

import tensorflow as tf a = tf.ones([1, 5, 5, 3]) a.shape a[0][0] numpy : 索引 a = tf.random.normal([4, 28, 28, 3]) a.shape a[1].shape a[1, 2].shape a[1][2][3].shape a[1, 2, 3, 2].shape 一维切片 a = tf.range(10) a a[-1:] a[-2:] a[:2] a[:-1] 多维切片 a = tf.ran

吴裕雄--天生自然TensorFlow2教程:数学运算

import tensorflow as tf b = tf.fill([2, 2], 2.) a = tf.ones([2, 2]) a+b a-b a*b a/b b // a b % a tf.math.log(a) # 只有以e为底的log tf.exp(a) tf.math.log(8.)/tf.math.log(2.) # 以2为底 tf.math.log(100.)/tf.math.log(10.) # 以10为底 tf.pow(b, 3) b**3 tf.sqrt(b) [ema

吴裕雄--天生自然TensorFlow2教程:Broadcasting

Broadcasting可以理解成把维度分成大维度和小维度,小维度较为具体,大维度更加抽象.也就是小维度针对某个示例,然后让这个示例通用语大维度. import tensorflow as tf x = tf.random.normal([4,32,32,3]) x.shape (x+tf.random.normal([3])).shape (x+tf.random.normal([32,32,1])).shape (x+tf.random.normal([4,1,1,1])).shape tr

吴裕雄--天生自然TensorFlow2教程:数据加载

import tensorflow as tf from tensorflow import keras # train: 60k | test: 10k (x, y), (x_test, y_test) = keras.datasets.mnist.load_data() x.shape y.shape # 0纯黑.255纯白 x.min(), x.max(), x.mean() x_test.shape, y_test.shape # 0-9有10种分类结果 y_onehot = tf.on

吴裕雄--天生自然 PYTHON3开发学习:基本数据类型

#!/usr/bin/python3 counter = 100 # 整型变量 miles = 1000.0 # 浮点型变量 name = "runoob" # 字符串 print (counter) print (miles) print (name) #!/usr/bin/python3 str = 'Runoob' print (str) # 输出字符串 print (str[0:-1]) # 输出第一个到倒数第二个的所有字符 print (str[0]) # 输出字符串第一个字

吴裕雄--天生自然 PHP开发学习:数据类型

<?php $x = "Hello world!"; echo $x; echo "<br>"; $x = 'Hello world!'; echo $x; ?> <?php $x = 5985; var_dump($x); echo "<br>"; $x = -345; // 负数 var_dump($x); echo "<br>"; $x = 0x8C; // 十六进制

吴裕雄--天生自然 JAVA开发学习:基本数据类型

public class PrimitiveTypeTest { public static void main(String[] args) { // byte System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE); System.out.println("包装类:java.lang.Byte"); System.out.println("最小值:Byte.MIN_VALUE=" + Byte.M

吴裕雄--天生自然 JAVASCRIPT开发学习: 表单验证

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <head> <script> function validateForm(){ var x=document.forms["myForm"]["fname"