TensorFlow基础常用函数(一)

本文详细介绍了TensorFlow中的张量生成方法,包括constant、convert_to_tensor、tf.fill、tf.zeros、tf.ones等。同时,还探讨了常用函数的应用,如强制类型转换、求最大最小值、reduce_mean、reduce_sum、Variable、四则运算、矩阵乘法、数据集构建、求梯度、enumerate、one_hot、softmax和参数更新等,是TensorFlow初学者的实用教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一个基础但完整神经网络代码

一、张量生成

1.普通张量生成constant

创建张量:张量是TensorFlow里最常用的数据结构,可以理解为任意维的数组。
调用方式为:

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

如创建一个一阶张量(即一维数组),里面只有两个元素1和5:

a = tf.constant([1, 5], dtype=tf.int64)
print("a:", a)
print("a.dtype:", a.dtype)
print("a.shape:", a.shape)

输出结果(可以看看TensorFlow数据类型的输出方式,其中shape为张量的大小,如shape(1,2),代表1*2的张量,或者说1行2列的数组):

a: tf.Tensor([1 5], shape=(2,), dtype=int64)
a.dtype: <dtype: 'int64'>
a.shape: (2,)

2.转化张量生成convert_to_tensor

将numpy数据类型转化成TensorFlow数据类型:

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

如将numpy类型的a转化为TensorFlow类型的b:

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)

输出结果(观察numpy和TensorFlow类型输出的不同处):

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

3.指定多值张量生成tf.fill、tf.zeros、tf.ones

创建全为0的张量、全为1的张量、以及全为指定值的张量:

tf.zeros(维度);
tf.ones(维度);
tf.fill(维度, 指定值)

例如:

import tensorflow as tf

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)

4.正态分布随机张量生成random.normal

生成指定维度的正态分布的随机数,默认均值为0,标准差为1;以及生成截断式正态分布的随机数(所谓截断式是指,所生成的数在均值加减两倍的方差以内,不会生成在此以外的数):

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

例如生成两行两列的张量:

import tensorflow as tf

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(
[[ 2.4837193  -0.07892781]
 [ 1.7919941   0.65845037]], shape=(2, 2), dtype=float32)
e: tf.Tensor(
[[ 0.7301492  -0.08809513]
 [-1.1277094   0.30927265]], shape=(2, 2), dtype=float32)

5.均匀分布张量生成random.uniform

生成指定维度的均匀分布随机数(minval,maxval):

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

例如生成两行两列的张量,其中的每个元素都符合0到1之间的均匀分布:

import
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值