TensorFlow:张量排序,填充和复制
生活随笔
收集整理的這篇文章主要介紹了
TensorFlow:张量排序,填充和复制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、張量排序
1.Sort, argsort
1.1一維
a=tf.random.shuffle(tf.range(5)) #numpy = array([2,0,3,4,1]) tf.sort(a,direction='DESCENDING') #numpy = array([4,3,2,1,0]) tf.argsort(a,direction='DESCENDING') #numpy = array([3,2,0,4,1]) idx=tf.argsort(a,direction='DESCENDING') tf.garther(a,idx) #numpy = array([4,3,2,1,0])1.2二維
a=tf.random.uniform([3,3],maxval=10,dtype=tf.int32) #array([[4,6,8],[9,4,7],[4,5,1]]) tf.sort(a) #array([[4,6,8],[4,7,9],[5,4,1]]) tf.argsort(a) #array([[0,1,2],[1,2,0],[2,0,1]])2.Top_k
Only return top-k values and indices
Top-k Accuracy
def accuracy(output,target,topk=(1,)):maxk=max(topk)batch_size=target.shape[0]pred=tf.math.top_k(output,maxk).indicespred=tf.transpose(pred,perm=[1,0])target_=tf.broadcast_to(target,pred.shape)correct=tf.equal(pred,target_)res=[]for k in topk:correct_k=tf.cast(tf.reshape(correct[:k],[-1]),dtype=tf.float32)correct_k=tf.reduce_sum(correct_k)acc=float(correct_k/batch_size)res.append(acc)return res二、填充和復制
1.pad
2.Image padding
a=tf.random.normal([4,28,28,3]) b=tf.pad(a,[[0,0],[2,2],[2,2],[0,0]]) b.shape #TensorShape([4,32,32,3])3.tile
a=tf.reshape(tf.range(9),[3,3]) #array([[0,1,2],[3,4,5],[6,7,8]]) tf.tile(a,[1,2]) tf.tile(a,[2,1]) tf.tile(a,[2,2])4.tile VS broadcast_to
aa=tf.expand_dims(a,axis=0) #TensorShape([1,3,3]) tf.tile(aa,[2,1,1]) #TensorShape([2,3,3]) tf.broadcast_to(aa,[2,3,3]) #TensorShape([2,3,3])總結
以上是生活随笔為你收集整理的TensorFlow:张量排序,填充和复制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TensorFlow数据统计
- 下一篇: 树的广度优先搜索(BFS),深度优先搜索