tf.add()、tf.subtract()、tf.multiply()、tf.div()函数的用法

本文详细介绍了TensorFlow中的tf.add()、tf.subtract()、tf.multiply()和tf.div()四个基本数学运算函数,通过示例展示了它们在标量和矩阵运算中的应用。了解这些函数对于进行深度学习模型的搭建至关重要。
部署运行你感兴趣的模型镜像

tf.add()、tf.subtract()、tf.multiply()、tf.div()函数用法介绍和示例

1. tf.add()

含义:加法操作

示例:

x = tf.constant(2, dtype=tf.float32, name=None)
y = tf.constant(3, dtype=tf.float32, name=None)
z = tf.add(x, y)         # 加法操作

X = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.float32, name=None)
Y = tf.constant([[1, 1, 1], [2, 2 ,2]], dtype=tf.float32, name=None)
Z = tf.add(X, Y)         # 矩阵加法操作,对应位置元素相加

with tf.Session() as sess:
    print(sess.run(z))
    print('='*30)

    print(sess.run(Z))
5.0
==============================
[[2. 3. 4.]
 [6. 7. 8.]]

2. tf.subtract()

含义:减法操作

示例:

x = tf.constant(10, dtype=tf.float32, name=None)
y = tf.constant(4, dtype=tf.float32, name=None)
z = tf.subtract(x, y)         # 减法操作

X = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.float32, name=None)
Y = tf.constant([[1, 1, 1], [2, 2 ,2]], dtype=tf.float32, name=None)
Z = tf.subtract(X, Y)         # 矩阵减法操作,对应位置元素相减

with tf.Session() as sess:
    print(sess.run(z))
    print('='*30)
    
    print(sess.run(Z))
6.0
==============================
[[0. 1. 2.]
 [2. 3. 4.]]

3. tf.multiply()

含义:将两个矩阵中对应元素各自相乘

示例:


import tensorflow as tf
X = tf.constant([[1, 2, 3], [4, 5 ,6]], dtype=tf.float32, name=None)
Y = tf.constant([[1, 1, 1], [2, 2 ,2]], dtype=tf.float32, name=None)
Z = tf.multiply(X, Y)       # 乘法操作,对应位置元素相乘

with tf.Session() as sess:
    print(sess.run(Z))
[[ 1.  2.  3.]
 [ 8. 10. 12.]]

4. tf.div()

含义:除法操作

示例:

x = tf.constant(6, dtype=tf.float32, name=None)
y = tf.constant(3, dtype=tf.float32, name=None)
z = tf.div(x, y)           # 标量/标量

X1 = tf.constant(6, dtype=tf.float32, name=None)
Y1 = tf.constant([[1, 2], [2, 3]], dtype=tf.float32, name=None)
Z1 = tf.div(X1, Y1)        # 标量/矩阵

X2 = tf.constant([[6, 12], [6, 12]], dtype=tf.float32, name=None)
Y2 = tf.constant([[1, 2], [2, 3]], dtype=tf.float32, name=None)
Z2 = tf.div(X2, Y2)        # 矩阵/矩阵,对应元素相除

with tf.Session() as sess:
    print(sess.run(z))
    print('='*30)
    
    print(sess.run(Z1))
    print('='*30)
    
    print(sess.run(Z2))       
2.0
==============================
[[6. 3.]
 [3. 2.]]
==============================
[[6. 6.]
 [3. 4.]]

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

TensorFlow 中,`tf.subtract` 是用于执行两个张量相减操作的函数。该函数支持广播(broadcasting)机制,允许形状不同的张量进行运算,前提是它们的维度可以兼容。`tf.subtract` 的使用方式类似于 NumPy 中的减法操作,但在 TensorFlow 的计算图(computation graph)中运行。 以下是一个基本的使用示例: ```python import tensorflow as tf # 创建两个张量 a = tf.constant([4.0, 5.0, 6.0]) b = tf.constant([1.0, 2.0, 3.0]) # 使用 tf.subtract 进行减法操作 result = tf.subtract(a, b) # 在会话中运行结果 with tf.Session() as sess: print(sess.run(result)) # 输出: [3.0, 3.0, 3.0] ``` 在 TensorFlow 2.x 中,默认启用即时执行(eager execution),因此可以直接输出结果而无需显式创建会话: ```python import tensorflow as tf a = tf.constant([4.0, 5.0, 6.0]) b = tf.constant([1.0, 2.0, 3.0]) result = tf.subtract(a, b) print(result.numpy()) # 输出: [3.0, 3.0, 3.0] ``` 此外,`tf.subtract` 支持广播机制,例如一个标量与一个张量相减: ```python a = tf.constant([4.0, 5.0, 6.0]) b = tf.constant(2.0) result = tf.subtract(a, b) print(result.numpy()) # 输出: [2.0, 3.0, 4.0] ``` 也可以用于两个具有不同形状的张量,只要它们满足广播规则: ```python a = tf.constant([[1.0, 2.0], [3.0, 4.0]]) b = tf.constant([1.0, 2.0]) result = tf.subtract(a, b) print(result.numpy()) # 输出: # [[0.0, 0.0], # [2.0, 2.0]] ``` 需要注意的是,`tf.subtract` 的输入张量类型必须一致,否则会抛出类型不匹配的错误。如果需要,可以通过 `tf.cast` 显式转换张量的数据类型。 在构建模型时,`tf.subtract` 常用于损失函数、归一化操作或自定义层中。例如,在计算预测值与真实标签之间的误差时,可能会用到该函数[^3]。 ### 示例:在损失函数中使用 `tf.subtract` ```python y_true = tf.constant([1.0, 2.0, 3.0]) y_pred = tf.constant([0.5, 2.5, 3.5]) error = tf.subtract(y_true, y_pred) squared_error = tf.square(error) loss = tf.reduce_mean(squared_error) print(loss.numpy()) # 输出: 0.25 ``` 上述示例展示了如何使用 `tf.subtract` 来计算预测值与真实值之间的均方误差损失。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值