我有一个经过训练的凯拉斯模型。我想用输入张量计算模型损失函数的梯度。我的预训练模型是一个生成器,它从一维输入生成一个矩阵。我有一个自定义的损失函数,它使用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)
结果都是[无]。 你能帮我解决这个问题吗
目前没有回答
相关问题 更多 >
编程相关推荐