我想使用其他网络的预测在Keras中实现自定义丢失功能。更具体地说,我想在发生器的损失函数中使用由鉴别器生成的预测。但是,当我尝试实现这一点时,我收到以下错误:
if len(array.shape) == 1:
TypeError: object of type 'TensorVariable' has no len()
Keras是否能够在自定义丢失函数中进行网络预测? 谢谢!
答案 0 :(得分:0)
要获得张量的维数,请使用K.ndim
代替K.shape
,例如:
import keras.backend as K`
def myCustomLoss(x):
if K.ndim(x) == 3:
print("is 3")
请注意,array
等值只是位于某些设备上的数据的占位符,例如您的GPU。因此len(array)
之类的东西不会起作用,因为后端必须首先获取这些值,而且它不会自动执行此操作,因为这样效率很低。