TensorFlow生成常量、序列与随机值完整指南

一颗松果
一颗松果
发布时间:2026-10-13| 4人浏览过
原创

本文详细介绍TensorFlow中生成常量、序列及随机值的核心函数。涵盖tf.zeros、tf.ones、tf.fill等常量创建方法,tf.linspace与tf.range序列生成技巧,以及uniform、normal和truncated_normal随机分布的使用。通过具体代码示例解析参数设置与输出结果,助力开发者高效构建神经网络初始数据。

TensorFlow生成常量、序列与随机值完整指南

TensorFlow 生成 常量、序列和随机值

生成常量

生成常量

除了常见的 tf.constant(),TensorFlow 还提供了类似 NumPy 的多种特殊常量生成函数,方便不同场景下的数据初始化。

tf.zeros(shape, dtype=tf.float32, name=None)

该函数的参数含义直观:shape 指定张量形状,dtype 指定数据类型(默认为 float32),name 为可选名称。其功能是返回一个形状指定且所有元素均为零的张量。

tf.zeros_like(tensor, dtype=None, name=None, optimizer=True) 的功能与名称一致:传入一个现有张量,返回一个具有相同形状和数据类型的张量。用户也可通过 dtype 参数显式指定新的数据类型。

tf.ones() 和 tf.ones_like() 的用法与上述 zeros 系列函数完全对应,分别用于生成全1张量和与输入张量同形状的全1张量。

tf.fill(shape, value, name=None) 用于生成一个指定形状且所有元素均填充为指定数值 value 的张量。例如:


tf.fill([2,3],9)

返回的张量就是:


[[9 9 9]
 [9 9 9]]

生成序列

生成序列


tf.linspace(start, stop, num, name=None)

TensorFlow 中的序列生成函数名称与 NumPy 保持一致,但参数进行了简化。前两个参数分别指定序列的起始值和结束值,num 参数指定生成的元素数量,最后 name 为可选名称。例如:


a = tf.linspace(1.0, 10.0, 10, name='lin1')

输出:


[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]

tf.range(start, limit, delta, dtype=None, name=None)

例如:


a = tf.range(1, 5, 1)

输出:


[1 2 3 4]

随机张量

随机张量

在 TensorFlow 中,随机值生成至关重要,许多模型初始参数往往依赖随机初始化。常用的随机值生成函数包括以下几种:

生成均匀分布的随机张量


# 调用格式
random_uniform(
  shape,
  minval=0,
  maxval=None,  # 最大值以及最小值
  dtype=tf.float32,
  seed=None,   # 指定种子
  name=None
)

# 例如
a = tf.random_uniform([2,3], minval=1.0, maxval=5.0, dtype=tf.float32)

# 输出
[[4.458698 4.091486 4.3704953]
 [3.893827 2.7951822 2.2381153]]

生成服从正态分布的随机张量


# 调用格式
random_normal(
  shape,
  mean=0.0,   # 均值
  stddev=1.0,  # 标准差
  dtype=tf.float32,
  seed=None,
  name=None
)

a = tf.random_normal([2,3], mean=3.0, stddev=1.0, dtype=tf.float32)

[[3.65199  1.879906 2.1775374]
 [1.6041888 1.503772 2.704612 ]]

生成服从截断正态分布的随机张量


# 调用格式
tf.truncated_normal(
  shape,
  mean=0.0,
  stddev=1.0,
  dtype=tf.float32,
  seed=None,
  name=None
)

[[4.477414 2.9767075 2.377511 ]
 [2.7083392 4.2639837 2.497882 ]]

该函数与正态分布函数使用方式类似,但增加了“截断”机制,即限制每个元素的取值范围。如果生成的值距离平均值超过 2 个标准差,该值将被丢弃并重新选择,以确保数据分布更集中。

以上这篇基于TensorFlow常量、序列以及随机值生成实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。