- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Tensorflow tensor 数学运算和逻辑运算方式由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、arthmetic 算术操作(+,-,*,/,Mod) 。
(1)tensor-tensor操作(element-wise) 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#两个tensor 运算
#运算规则:element-wise。即c[i,j,..,k]=a[i,j,..,k] op b[i,j,..,k]
ts1
=
tf.constant(
1.0
,shape
=
[
2
,
2
])
ts2
=
tf.Variable(tf.random_normal([
2
,
2
]))
sess.run(tf.global_variables_initializer())
#以ts1和ts2为例:
#(1)加法+
ts_add1
=
tf.add(ts1,ts2,name
=
None
)
ts_add2
=
ts1
+
ts2
#二者等价
#(2)减法-
ts_sub1
=
tf.subtract(ts1,ts2,name
=
None
)
ts_sub2
=
ts1
-
ts2
#二者等价
#(3)乘法*
ts_mul1
=
tf.multiply(ts1,ts2,name
=
None
)
ts_mul2
=
ts1
*
ts2
#(4)除法/
ts_div1
=
tf.divide(ts1,ts2,name
=
None
)
ts_div2
=
tf.div(ts1,ts2,name
=
None
)
#div 支持 broadcasting(即shape可不同)
ts_div3
=
ts1
/
ts2
#另外还有truediv(x,y) x,y类型必须一致,floor_div等。
#(5)取模Mod(估计基本用不到)
|
(2)tensor-scalar操作 。
1
2
3
4
5
6
7
8
9
10
|
#scalar-tensor操作。
#对tensor中所有element执行同样的操作(+,-,*,/)
#加法
ts_add
=
ts1
+
2
#减法
ts_sub
=
ts1
-
2
#乘法
ts_mul
=
ts1
*
2
#除法
ts_div
=
ts1
/
2
|
2、基本数学函数 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#以下x,y均代表tensor
tf.add_n(inputs, name
=
None
)
#inputs:tensor数组,所有tensor相加
tf.
abs
(x, name
=
None
)
#绝对值
tf.negative(x, name
=
None
)
#取反
tf.sign(x, name
=
None
)
#取符号(y = sign(x) = -1 if x < 0; 0 if x == 0; 1 if x > 0.)
tf.square(x, name
=
None
)
#y=x*x
tf.
round
(x, name
=
None
)
#Rounds the values of a tensor to the nearest integer, element-wise.
tf.sqrt(x, name
=
None
)
#sqrt
tf.
pow
(x, y, name
=
None
)
#x,y均为tensor,element-wise求pow
tf.exp(x, name
=
None
)
#y=e^x
tf.log(x, name
=
None
)
#y=log(x)
tf.ceil(x, name
=
None
)
#ceil
tf.floor(x, name
=
None
)
#floor
tf.maximum(x, y, name
=
None
)
#z=max(x,y)
tf.minimum(x, y, name
=
None
)
tf.cos(x, name
=
None
)
#三角函数,sin,cos,tan,acos,asin,atan
tf.sin(x, name
=
None
)
tf.tan(x, name
=
None
)
tf.acos(x, name
=
None
)
tf.asin(x, name
=
None
)
tf.atan(x, name
=
None
)
#...
#等等一些函数。
|
3、Matrix矩阵操作 。
1
2
3
4
5
6
7
8
9
|
tf.diag(diagonal, name
=
None
)
#得到以diagonal为对角的tensor
tf.diag_part(
input
, name
=
None
)
#tf.diag 逆操作,得到input的对角矩阵
tf.transpose(a, perm
=
None
,name
=
None
)
#转置矩阵,y[i,j]=x[j,i]
#矩阵乘法
tf.matmul(a, b,
transpose_a
=
False
, transpose_b
=
False
,
#
adjoint_a
=
False
, adjoint_b
=
False
,
#共轭
a_is_sparse
=
False
, b_is_sparse
=
False
,
#矩阵是否稀疏
name
=
None
)
|
4、Reduction 归约操作 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#(1)tf.reduce_sum
#当keep_dims=False。rank of tensor会降维度。
tf.reduce_sum(input_tensor,
axis
=
None
,
#要归约的dimention。值为None或一个数字或者数组。如0,1,[0,3,4]
keep_dims
=
False
,
#if true, retains reduced dimensions with length 1.
name
=
None
,
reduction_indices
=
None
)
#(2)tf.reduce_min / tf.reduce_max / tf.reduce_mean
#参数与tf.reduce_sum一致。
#tf.reduce_min : 被归约的数取最小值;
#tf.reduce_max : 被归约的数取最大值;
#tf.reduce_mean: 被归约的数取平均值。
#(3)逻辑操作
# tf.reduce_all:logical and operation
# tf.reduce_any: logical or operation
#(4)自定义操作函数
tf.einsum(equation,
*
inputs)
#例子:
tf.einsum(
'ij,jk->ik'
, ts1,ts2)
#矩阵乘法
tf.einsum(
'ij->ji'
,ts1)
#矩阵转置
|
5、tensor大小 比较 。
1
2
3
4
5
6
7
8
9
10
11
|
#(1)相等equal (element-wise)
tf.equal(x, y, name
=
None
)
#Returns the truth value of (x == y) element-wise.
#(2)不等not_equal
tf.not_equal(x, y, name
=
None
)
#(3)其他比较
tf.less(x, y, name
=
None
)
tf.less_equal(x, y, name
=
None
)
tf.greater(x, y, name
=
None
)
tf.greater_equal(x, y, name
=
None
)
|
6、恒等映射 。
#恒等映射 。
tf.identity(input, name=None) #Return a tensor with the same shape and contents as the input tensor or value. 。
7、类型转化 。
1
2
3
4
5
6
|
tf.cast(x, dtype, name
=
None
)
#Casts a tensor to a new type.
#For example:
# tensor `a` is [1.8, 2.2], dtype=tf.float
#tf.cast(a, tf.int32) ==> [1, 2] dtype=tf.int32
|
8、例子 。
(1)RELU实现 。
1
2
3
4
5
6
7
8
9
10
11
12
|
import
tensorflow as tf
def
relu(x):
#要构造一个和x shape一样的Tensor。源码中应该不会用效率这么低的写法。
y
=
tf.constant(
0.0
,shape
=
x.get_shape())
return
tf.where(tf.greater(x,y),x,y)
sess
=
tf.Session()
x
=
tf.Variable(tf.random_normal(shape
=
[
10
],stddev
=
10
))
sess.run(tf.global_variables_initializer())
x_relu
=
relu(x)
data_x,data_x_relu
=
sess.run((x,x_relu))
for
i
in
range
(
0
,
len
(data_x)):
print
(
"%.5f --relu--> %.5f"
%
(data_x[i],data_x_relu[i]))
|
补充知识:tensorflow 复合逻辑‘且'和‘或'的实现 。
我就废话不多说了,大家还是直接看代码吧~ 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
import
tensorflow as tf
n1
=
tf.constant(
2
)
n2
=
tf.constant(
3
)
n3
=
tf.constant(
4
)
n4
=
tf.constant(
5
)
def
true_fn1():
return
tf.constant(
11
)
def
false_fn1():
return
tf.constant(
22
)
def
true_fn():
return
tf.cond(n3<n4,true_fn1,false_fn1)
def
false_fn():
return
tf.constant(
33
)
r
=
tf.cond(n1<n2,true_fn,false_fn)
sess
=
tf.Session()
print
(sess.run(r))
|
print结果11 。
相当于实现了if n1<n2 and n3<n4
后来发现,用 & 和 | 就行了 。
1
2
3
4
5
6
7
8
9
10
11
12
|
import
tensorflow as tf
n1
=
tf.constant(
True
,tf.
bool
)
n2
=
tf.constant(
False
,tf.
bool
)
r1
=
n1 | n2
r2
=
n1 & n2
sess
=
tf.Session()
print
(sess.run(r1))
print
(sess.run(r2))
|
1
2
3
4
5
6
7
8
9
10
11
12
|
import
tensorflow as tf
n1
=
tf.constant(
1
)>tf.constant(
0
)
n2
=
tf.constant(
1
)<tf.constant(
0
)
r1
=
n1 | n2
r2
=
n1 & n2
sess
=
tf.Session()
print
(sess.run(r1))
print
(sess.run(r2))
|
以上这篇Tensorflow tensor 数学运算和逻辑运算方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/vcvycy/article/details/78489378 。
最后此篇关于Tensorflow tensor 数学运算和逻辑运算方式的文章就讲到这里了,如果你想了解更多关于Tensorflow tensor 数学运算和逻辑运算方式的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
当我尝试加载库 Raster 时,我收到如下错误: 错误:inDL(x, as.logic(local), as.logic(now), ...) 中的“raster”的包或命名空间加载失败:无法加载
当我尝试加载库 Raster 时,我收到如下错误: 错误:inDL(x, as.logic(local), as.logic(now), ...) 中的“raster”的包或命名空间加载失败:无法加载
望着help section about_Comparison_Operators of PowerShell我是这样理解的: PS C:\> $false,$false -eq $true PS C
我刚刚修改了旧代码,现在似乎没有任何效果。请您指导我哪里出错了。 一些不起作用的事情是: 以前,焦点始终停留在屏幕上唯一的输入字段上。 (现在不行了),代码中的 if else 条件也不起作用。 On
请帮我找到一个使用普通 'ol javascript 的解决方案(我无法使用外部框架)。此外,CSS :hover 选择器不适用于现实世界的实现。 注册事件发生的事情设置所有调用最后注册事件数组项。
我想创建一个软件来为残障 child 交通规划公交路线(及其最佳载客量)。 这些总线具有以下规范: m 个座位(最多 7 个 - 因为有司机和助理) o 轮椅“座位”(最多 4 个) 固定的最大负载量
有人能帮我吗?似乎我的 for 逻辑根本不起作用,因为它一直在上午 12:00 返回我的开始时间 这是我的代码 Sub forlogic() Dim i As Single Dim t
我正在尝试设置 OR两个切片器过滤器之间的逻辑。两个切片器来自相同的数据集。以下是更多详细信息: 我的源表: 带切片器的视觉效果: 我的目标是,如果我从切片器 1 和切片器 2 中选择任何值,我的视觉
我有以下 C 语句: int res = x & (x ^ y); 有没有办法做同样的事情,但每次只使用一次x和y? 例如: x | (~x & y) == x | y 最佳答案 是的,通过扩展 xo
我正在创建 Azure 逻辑应用程序以将新的 Sharepoint 文件添加到 Azure Blob。 Sharepoint 由我的公司运行,我使用我的凭据登录来为逻辑应用程序创建 Sharepoin
我有一个问题要求为给定函数合成最简单的乘积表达式总和。基本上,如果 AB == CD,则函数为 1,否则为 0,结果如下: (!A && !B && !C && !D) || (!A && B &&
我正在尝试确定是否可以在不溢出的情况下计算两个 32 位整数的总和,同时仅使用某些按位运算符和其他运算符。因此,如果整数 x 和 y 可以相加而不会溢出,则以下代码应返回 1,否则返回 0。 ((((
处理乍一看需要许多嵌套 if 语句的复杂业务逻辑的好方法是什么? 例子: 折扣券。可能: 1a) 超值折扣 1b) 百分比折扣 2a) 正常折扣 2b) 累进折扣 3a) 需要访问优惠券 3b) 不需
假设我有一个“numbers”对象数组,其中包含“startNo”整数和“endNo”整数。 数组中可以有多个“数字”,我想获取一个包含修改对象的新数组,该数组仅具有不重叠的范围。 例如:如果数组有:
我在这个问题上遇到了困难。我正在使用 JavaScript。 我有一个文本区域,用于检测 @ 输入并将其位置存储在数组中。 var input = "@a @b @c" //textarea var
默认 IN 使用 OR 基本逻辑。有没有办法在范围内使用 AND 基本逻辑。 例如下面的查询 SELECT ItemId,CategoryID FROM ItemCategories WHERE Ca
我想在您将鼠标悬停在网站图像上时添加叠加层。我在这里实现了这个,它工作正常http://jsfiddle.net/stujLbjh/ 这是js代码: var divs = document.query
这个问题在这里已经有了答案: Which is faster: x>2 是否比 x>>31 快?换句话说,sar x, 2 是否比 sar x, 31 快?我做了一些简单的测试,他们似乎有相同的速度
我有grails criteriaQuery,我在这里再次检查OR逻辑,就像这样一个状态变量: or { eq("status", Status.ONE) eq("status",
我有grails criteriaQuery,我在这里再次检查OR逻辑,就像这样一个状态变量: or { eq("status", Status.ONE) eq("status",
我是一名优秀的程序员,十分优秀!