我使用 TensorFlow 构建了一个模型。
def customLoss( pay, n, tau):
def loss(y_pred):
return tf.math.reduce_mean(-pay[:,n]*y_pred- pay[np.arange(len(pay)),tau]*(1-y_pred))
return loss
def make_model( pay, n, tau):
model = Sequential()
model.add(Dense(140,kernel_initializer='glorot_normal' ))
model.add( BatchNormalization())
model.add(Activation("relu"))
model.add(Dense(140,kernel_initializer='glorot_normal' ))
model.add( BatchNormalization())
model.add(Activation("relu"))
model.add(Dense(1 ,kernel_initializer='glorot_normal' ))
model.add( BatchNormalization())
model.add(Activation("sigmoid"))
model.compile(loss=customLoss( pay, n, tau), optimizer= keras.optimizers.Adam(learning_rate=0.01)) #meaning of parameters : check additional
return model
X= np.array(....) #shape (M,N)
pay =np.array(....) #shape (M,N)
model = make_model( pay, 1, 2)
model.fit(X,epochs=2, batch_size=10, verbose=1)
现在当我运行它时,它输出 ' ValueError: No gradients provided for any variable'
。
有人可以帮忙吗?