Faster RCNN 常用小工具(持续更新)

K开头为keras工具,tf开头为tensorflow工具。可以混合使用!

一号工具-数组坐标查询工具
tf.gather_nd(params=输入数组,indices = 坐标(数组))

二号工具-向量压缩工具
tf.squeeze(input=输入tensor, axis=压缩第几纬度)

三号工具-比对工具
K.not_equal(x=原始量_match,y=比对量) ##默认返回布尔值,可设置dtype=int32 返回0或 1
K.equal(x=原始量_match,y=比对量) ##返回布尔值

四号工具-判断条件工具
K.switch(condition=原始条件, then_expression=原始条件满足执行, else_expression=原始条件不满足执行)

五号工具 - tensor组合工具两个 tf.concat 和tf.stack
tf.concat or tf.stack ([t1,t2],axis=纬度)注意 concat 是组合tesnor本身,stack组合是改变batchsize
这两个通俗的说第一个是充实一个主体,第二个是建立多个主体联合。


(持续更新.......)

#演示代码待续........

#五号工具demo
with tf.Session() as sess:
    
    t1 = [[1,2,3],[4,5,6]] # shape = (2,3)
    t2 = [[7,8,9],[10,11,12]] # shape = (2,3)
    
    res1ca = tf.concat([t1,t2],axis=0)
    #shape = (4,3)
#     [[ 1  2  3]
#      [ 4  5  6]
#      [ 7  8  9]
#      [10 11 12]]

    res2ca = tf.concat([t1,t2],axis=1)
    #shape = (2, 6)
#     [[ 1  2  3  7  8  9]
#      [ 4  5  6 10 11 12]]
    #重点!- concat并不会改变 batchsize,仅仅是内部根据纬度拼接x或y

    res1st = tf.stack([t1,t2],axis=0) #沿x轴 即行
    #shape = (2,2,3) 
#     [[[ 1  2  3]
#       [ 4  5  6]]
#      [[ 7  8  9]
#       [10 11 12]]]
 
    res2st = tf.stack([t1,t2],axis=1) #沿y轴 即列
#   shape = (2, 2, 3)
#    [[[ 1  2  3]
#      [ 7  8  9]]
#     [[ 4  5  6]
#      [10 11 12]]]
 #重点!- stack并不会改变尺寸,但是会改变 batchsize,,根据X轴Y轴组建 一个变量为一个batchsize

    print (sess.run(“tensor”))
    print (sess.run(“tessor”).shape)