自定义的HybridBlock模型如何切片?


#1

好像只能实现a[1],不能实现a[:, :, :, 1]这样子切片?


#2

应该是可以这样切,但是如果跑的时候用net.hybridize()的话可能就不行了。
所以可以使用:
b = a.slice_axis(axis=3, begin=0, end=1)就可以切了


#3

可以用F.slice或slice_aixs,但是只能处理在构建网络时写死的,如果你的需求比较灵活,可能就没办法了


#5

F.slice_aixs怎么只切最后一个值呢,我设begin=-1,end=-1报错


#6

我印象中是不支持用负数索引的,不知道现在有没有支持这个实现,如果没有的话还是需要手算


#7

这个我试了可以支持负索引,后面end=None就可以访问最后一个了。谢谢解答,还有个问题想请教你一下,我24g显存的gpu。应该够用了,可是训练模型的时候还是会out of memory怎么回事啊?gpu监控显示还有15个g的空闲。


#8

刚才监控了一下发现,在验证集上,验证的时候只占8个g,一开始训练就突然22个g了,显存就不够了,这是为啥?