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)
- 点赞
- 收藏
- 关注作者
评论(0)