我有一个预先训练的keras模型。我希望通过输入张量来计算模型的损失函数的梯度。我的预训练模型是一个生成器,可以从一维输入生成矩阵。我有一个自定义损失函数,该函数使用3个输入来计算损失。
BATCH_SIZE=64
g=generator(shape=[100])# g is my pretrained network
z = Input(shape=[100])
val_inc=Input(shape=(127,8,1))
mask=Input(shape=(127,8,1))
def loss(mask,g,val_inc,z):
w=mask*g.predict(z)
q=mask*val_inc
x=w-q
return K.sum(K.abs(x))
for idx in range(0, 100):
batch_images = val_inc[index*BATCH_SIZE:(index+1)*BATCH_SIZE]
batch_mask = mask[index*BATCH_SIZE:(index+1)*BATCH_SIZE]
zhats = np.random.uniform(-1, 1, size=(BATCH_SIZE, 100))
x=loss(batch_mask,g,batch_images,zhats)
gradients=K.gradients(x,zhats)
print(gradients)
结果全部为[无]。 您能帮我解决问题吗?