tensorflow张量的简单用法

维度增加 tf.expand_dims(input,axis,name=None)


维度减少 tf.squeeze(input,axis=None,name=None)


转置 tf.transpose(a,perm=None,conjugate=False,name='transpose')


a = tf.constant([[1,3],[5,7]])

b = tf.constant([[2,4],[6,8]])

tf.add(a,b)

print('算数加法:','\n',tf.add(a,b).numpy()) 

print('算数减法:','\n',tf.subtract(a,b).numpy()) 

print('算数乘法:','\n',tf.multiply(a,b).numpy()) 

print('算数除法:','\n',tf.divide(a,b).numpy())


print(tf.matmul(a,b)) # 矩阵乘法


创建变量tensor 

var_1 = tf.Variable(tf.ones([2,3]))

#变量加法 

var_1.assign_add(tf.ones([2,3]))


张量的数据统计主要包括: 

 tf.reduce_min/max/mean():求解最小值最大值和均值函数; 

 tf.argmax()/tf.argmin():求最大最小值位置; 

 tf.equal():逐个元素判断两个张量是否相等;

 tf.unique():除去张量中的重复元素。 

 tf.nn.in_top_k(prediction, target, K):用于计算预测值和真是值是否相等,返回一个 bool 类型的 张量。


张量的拼接

d = tf.concat(values=[a, b, c], axis=0)  # 在第一个维度上进行连接

e = tf.concat(values=[a, b, c], axis=1)  # 在第二个维度上进行连接


x = tf.stack(values=[A, B, C, D], axis=0)  # 增加一个第0维度,并在这个维度上面堆叠(常用)

y = tf.stack(values=[A, B, C, D], axis=1)  # 增加一个第1维度,并在这个维度上面堆叠

z = tf.stack(values=[A, B, C, D], axis=2)  # 增加一个第2维度,并在这个维度上面堆叠


张量的分割


排序

tf.sort/argsort(input, direction, axis): 

 input:输入张量;

 direction:排列顺序,可为 DESCENDING 降序或者 ASCENDING(升序)。默认为 ASCENDING(升序);

 axis:按照 axis 维度进行排序。默认 axis=-1 最后一个维度。


tf.nn.top_k(input,K,sorted=TRUE): 

 input:输入张量; 

 K:需要输出的前 k 个值及其索引。 

 sorted: sorted=TRUE 表示升序排列;sorted=FALSE 表示降序排列。


#取出第一张图片第二个通道中在[20,40]位置的像素点 

tensor_h[0][19][39][1]

#取出 tensor_h([4,100,100,3])中,第 1,2,4 张图像。 

indices = [0,1,3] 

tf.gather(tensor_h,axis=0,indices=indices,batch_dims=1)


合智互联客户成功服务热线:400-1565-661

admin
admin管理员

上一篇:GaussDB (DWS) 集群均衡失败原理分析
下一篇:GaussDB(DWS)性能调优系列实战篇四:十八般武艺之SQL改写

留言评论

暂无留言
取消
扫码支持