YOLOV3 源码 相关

本文通过具体示例,详细解析了Python中reduce函数的工作原理及其在列表操作中的应用,同时展示了Keras中张量操作的实现过程,包括如何使用K.tile进行张量的扩展和K.concatenate进行张量的拼接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A: reduce

from functools import reduce
def add(x):
    return x+1
def mut(x):
    return x**2
print(reduce(lambda f,g:lambda *a,**kw:g(f(*a,**kw)),[add,mut,add,mut])(1))
print(reduce(lambda f,g:lambda *a,**kw:f(g(*a,**kw)),[add,mut,add,mut])(1))

f*a **kw:表示传入的参数,个数,类型都任意,一种通用的表示方法:

第一种按着传入顺序执行顺序操作 因为 lambda f,g g(f()) + **2 + **2

第二种按着传入顺序逆序执行操作,因为lambda f,g f(g()) **2 + **2+

B:K.tile

grid_shape = K.shape(feats)[1:3]
grid_y = K.tile(K.reshape(K.arange(0, stop=grid_shape[0]), [-1, 1, 1, 1]), [1, grid_shape[1], 1, 1])
grid_x = K.tile(K.reshape(K.arange(0, stop=grid_shape[1]), [1, -1, 1, 1]), [grid_shape[0], 1, 1, 1])
grid=K.concatenate([grid_x,grid_y])
grid=K.cast(grid,K.dtype(feats))

第一句:获得grid_shape 的 width height

第二句:把height 扩成[h,1,1,1]的容器,并用扩充成 [h,w,1,1]

第三句:同样得到[h,w,1,1]

第四句:[h,w,1,2]

请尝试example 会更有感觉

a=13
aa=K.arange(0,stop=a)
print(aa)
aaa=K.reshape(aa,[-1,1,1,1])
print(aaa)
aaaa=K.tile(aaa,[1,15,1,1])
print(aaaa)

b=15
bb=K.arange(0,stop=b)
print(bb)
bbb=K.reshape(bb,[1,-1,1,1])
print(bbb)
bbbb=K.tile(bbb,[13,1,1,1])
print(bbbb)

ab=K.concatenate([aaaa,bbbb])
print(ab)

a=13res

result:

Using TensorFlow backend.
Tensor("arange:0", shape=(13,), dtype=int32)
Tensor("Reshape:0", shape=(13, 1, 1, 1), dtype=int32)
Tensor("Tile:0", shape=(13, 15, 1, 1), dtype=int32)
Tensor("arange_1:0", shape=(15,), dtype=int32)
Tensor("Reshape_1:0", shape=(1, 15, 1, 1), dtype=int32)
Tensor("Tile_1:0", shape=(13, 15, 1, 1), dtype=int32)
Tensor("concat:0", shape=(13, 15, 1, 2), dtype=int32)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值