TensorFlow2 张量生成

声明

声明:本系列博客是我在学习人工智能实践:TensorFlow笔记(曹健,北京大学,软件与微电子学院)所做的笔记。所以,其中的绝大部分内容引自这系列视频,博客中的代码也是视频配套所附带的代码,其中部分代码可能会因需要而改动。侵删。在本系列博客中,其中包含视频中的引用,也包括我自己对知识的理解,思考和总结。本系列博客的目的主要有两个,一个是可以作为我自己的学习笔记,时常复习巩固。第二个是可以为想学习TensorFlow 2 相关知识的朋友提供一些参考。

正文

张量(Tensor):多维数组(列表)

阶:张量的维数

维数名字例子
0维0标量s=123
1维1向量v=[1,2,3]
2维2矩阵m=[[1,2,3],[4,5,6]]
n维n张量t=[[[[[[[[[…

张量可以表示0阶到n阶数组(列表)

数据类型

32位整型,32位浮点,64位浮点,布尔型,字符串型等等。

创建张量

tf.constant(张量内容,dtype=数据类型(可选))

import tensorflow as tf
a=tf.constant([0,9,2,6],dtype=tf.int32)
print(a)
print(a.dtype)
print(a.shape)

运行结果:

tf.Tensor([0 9 2 6], shape=(4,), dtype=int32)
<dtype: 'int32'>
(4,)

将numpy的数据类型转换为Tensor数据类型:

tf.convert_to_tensor(数据名,dtype=数据类型(可选))

import tensorflow as tf
import numpy as np
a = np.arange(0, 5)
b = tf.convert_to_tensor(a, dtype=tf.int64)
print("a:", a)
print("b:", b)

运行结果:

a: [0 1 2 3 4]
b: tf.Tensor([0 1 2 3 4], shape=(5,), dtype=int64)

创建全0张量

功能函数
创建全为0的张量tf.zeros(维度)
创建全为1的张量tf.ones(维度)
创建全为指定值的张量tf.fill(维度,指定值)

维度:一维 直接写个数;二维 用[行,列];多维 用[n,m,j,k…]

a = tf.zeros([2, 3])
b = tf.ones(4)
c = tf.fill([2, 2], 9)
print("a:", a)
print("b:", b)
print("c:", c)

运行结果:

a: tf.Tensor(
[[0. 0. 0.]
 [0. 0. 0.]], shape=(2, 3), dtype=float32)
b: tf.Tensor([1. 1. 1. 1.], shape=(4,), dtype=float32)
c: tf.Tensor(
[[9 9]
 [9 9]], shape=(2, 2), dtype=int32)

生成正态分布的随机数,默认均值为0,标准差为1

tf.random.normal(维度,mean=均值,stddev=标准差)

生成截断式正态分布的随机数

tf.random.truncated_normal(维度,mean=均值,stddev=标准差)
在tf.truncated_normal中如果随机生成数据的取值在(μ-2σ,μ+2σ)之外,则重新进行生成,保证了生成值在均值附近。

d = tf.random.normal([2, 2], mean=0.5, stddev=1)
print("d:", d)
e = tf.random.truncated_normal([2, 2], mean=0.5, stddev=1)
print("e:", e)

运行结果:

d: tf.Tensor(
[[-0.07528389 -1.821507  ]
 [-0.7824471  -0.24821514]], shape=(2, 2), dtype=float32)
e: tf.Tensor(
[[ 0.15341267 -0.22747952]
 [-1.2789942   0.8269198 ]], shape=(2, 2), dtype=float32)

生成均匀分布随机数 [minval,maxval)

tf.random.uniform(维度,minval=最小值,maxval=最大值)

f = tf.random.uniform([2, 2], minval=0, maxval=1)
print("f:", f)

运行结果:

f: tf.Tensor(
[[0.1480099  0.60948014]
 [0.3652519  0.8810216 ]], shape=(2, 2), dtype=float32)

感谢观看!

如有错误,欢迎批评指正!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值