TensorFlow中的数学op

本文来源自斯坦福大学CS20课程,有兴趣的同学可以点击斯坦福CS20

TensorFlow中提供的关于数学计算的op非常的标准。关于它们的详细内容可以浏览math_ops。在这篇文章里,我们将要接待好一些需要被注意的地方。

TensorFlow中丧心病狂的除法操作

     在最新一版的TensorFlow中,TensorFlow的工作人员向我们提供了7种不同的除法操作。由此可见,TensorFlow的开发人员对于除法操作有一种超乎常人的喜爱。关键的问题在于,这些除法操作的功能大体上差不多。所以,如果说在你的TensorFlow程序中需要用到除法操作,强烈建议你仔细阅读TensorFlow中关于除法操作的开发文档点击这里,以便于能够正确选择你需要的操作。从更高的层面来看,tf.div是TensorFlow风格的除法,而tf.divide是典型得Python风格的除法。

a = tf.constant([2, 2], name='a')
b = tf.constant([[0, 1], [2, 3]], name='b')
with tf.Session() as sess:
	print(sess.run(tf.div(b, a)))             ⇒ [[0 0] [1 1]]
	print(sess.run(tf.divide(b, a)))          ⇒ [[0. 0.5] [1. 1.5]]
	print(sess.run(tf.truediv(b, a)))         ⇒ [[0. 0.5] [1. 1.5]]
	print(sess.run(tf.floordiv(b, a)))        ⇒ [[0 0] [1 1]]
	print(sess.run(tf.realdiv(b, a)))         ⇒ # Error: only works for real values
	print(sess.run(tf.truncatediv(b, a)))     ⇒ [[0 0] [1 1]]
	print(sess.run(tf.floor_div(b, a)))       ⇒ [[0 0] [1 1]]
tf.add_n

tf.add_n的操作允许你将多个tensor相加起来。

tf.add_n([a, b, b])  => 等价于 a + b + b
TensorFlow中的点积

需要说明的是tf.matmul不再实现矩阵的点积功能,它是将阶数大于等于2的矩阵对应元素相乘。如果需要使用矩阵的乘法,请使用tf.tensordot

a = tf.constant([10, 20], name='a')
b = tf.constant([2, 3], name='b')
with tf.Session() as sess:
	print(sess.run(tf.multiply(a, b)))           ⇒ [20 60] # element-wise multiplication
	print(sess.run(tf.tensordot(a, b, 1)))       ⇒ 80

下面这张表是在《Fundamentals of Deep Learning》中罗列的关于Python当中计算op的一些操作:

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值