Как разделить тензор на блок NXN и восстановить первый из этих блоков снова? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть тензор с формой (1,32,32), в котором первый индекс в форме показывает количество каналов, а мои изображения серые. Теперь мне нужно разделить этот тензор на блоки 8x8 и выполнить некоторые процессы в каждом блоке, например DCT, и после изменений заменить эти новые блоки на предыдущие. у нас есть mattocell и celltomat в Matlab, но в керасе я не знаю, как я могу это сделать? не могли бы вы рассказать свои предложения в Керасе? Спасибо.

Я использовал этот код:

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)

но я не знаю, правда это или нет ?! не могли бы вы сказать мне, что можно использовать приведенный выше код для тензоров в кератах? Спасибо

1 Ответ

0 голосов
/ 03 мая 2019

Я использовал вышеупомянутый код, и он работает. основываясь на моих экспериментах, мы можем сделать это для циклов, но если у кого-то есть лучшее предложение, пожалуйста, поместите его здесь.

 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...