我有一个形状为 (1,32,32( 的张量,形状的第一个索引显示通道数,我的图像是灰色的。 现在我需要将这个张量分成 8x8 块,并在每个块上做一些处理,如 DCT,并在更改后,将这些新块替换为前一个块。 我们在 Matlab 中有mattocell
和celltomat
, 但是在凯拉斯,我不知道我该怎么做?你能在Keras中说出你的建议吗?谢谢。
我使用了以下代码:
def slicAndJpeg(img):
for i in range (int(img.shape[1].value/8)):
for j in range(int(img.shape[2].value/8)):
temp=img[:,i*8:i*8+8,j*8:j*8+8]
tempb=K.zeros((8,8))
DCT(temp,tempb)
但我不知道这是真的还是假的?! 你能告诉我是否可以在 keras 中使用上面的代码来张量吗?谢谢
我使用了前面提到的代码,它可以工作。 根据我的实验,我们可以通过 for 循环来做到这一点,但如果有人有更好的建议,请把它放在这里。
def slicAndJpeg(img):
for i in range (int(img.shape[1].value/8)):
for j in range(int(img.shape[2].value/8)):
temp=img[:,i*8:i*8+8,j*8:j*8+8]
tempb=K.zeros((8,8))
DCT(temp,tempb)