У меня есть функция, которая имеет один-два входа, и оба они являются тензорными.Мне нужно сделать некоторые процессы на этих входах, а затем использовать вывод в моей сети.один из этих входов является выходом слоя свертки, и я не знаю, как мне решить эту ошибку!Я поставил функцию ниже: приведенный ниже код реализует это уравнение, G
, C(u)
и C(v)
являются числами. введите описание изображения здесь
def DCT(a, b):
for u in range(8):
for v in range(8):
for x in range(8):
for y in range(8):
b[u,v] = b[u, v] + 0.25 * C(u) * C(v) * a[x, y]* np.cos((2 * x+1) * (u) * np.pi / 16) * np.cos((2 * y+1) * (v) * np.pi / 16)
в вышеприведенном коде, a
и b
являются тензорами, которые производятся в следующем коде:
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)
mask=quntize_mask(8,9)
qunz=Kr.layers.multiply(mask,tempb)
tempc=K.zeros((8,8))
IDCT(qunz,tempc)
img[:,i*8:i*8+8,j*8:j*8+8]=tempc
полученная ошибка:
Трассировка (последний последний вызов):
Файл "", строка 122, в decoded_noise = JPEGLayer () (декодированный) # 16
Файл "D: \ software \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ keras \ engine \ base_layer.py", строка 457, в вызов output = self.call (входные данные, ** kwargs)
Файл "", строка 94, в шуме возврата вызова ()
Файл "", строка 88, в шуме slicAndJpeg (noised_image_pad)
Файл "", строка 66, в SlicAndJpeg DCT (temp, tempb)
Файл "", строка 40, в DCT b [u, v] = b [u, v] + 0,25 * C (u) * C (v) * a [x, y] * np.cos ((2 * x + 1) * (u) * np.pi / 16) * np.cos ((2 * y + 1) * (v) * np.pi / 16)
TypeError: объект 'RefVariable' не поддерживает назначение элементов
, но мне нужно выполнить эти назначения, и я не могу их изменить.есть ли у вас предложения?Я также пытался использовать K.eval
для этих двух входов, но он выдает еще одну ошибку, которая, я думаю, связана с использованием K.eval
перед model.fit
InvalidArgumentError: Вы должны указать значение длятензор-заполнитель 'input_1' с dtype float и shape [?, 28,28,1]
Не могли бы вы сказать, как я могу выполнить эти назначения без ошибок?Я новичок в Керасе и пока не знаю многих вещей, так что, возможно, мои вопросы легки для вас, но, к сожалению, смутили меня.Спасибо.