警告:tensorflow:当最小化损失时,变量['dense_151/bias:0']不存在梯度

2024-10-16 17:27:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我的错误在这里

enter image description here

警告:tensorflow:当最小化损失时,变量['dense_151/bias:0']不存在梯度。

这里有关于“密集度/偏差:0”的信息。(model.summary()) enter image description here


Layer (type)                 Output Shape              Param #   
=================================================================
input_17 (InputLayer)        [(None, 3)]               0         
_________________________________________________________________
dense_144 (Dense)            (None, 20)                80        
_________________________________________________________________
dense_145 (Dense)            (None, 20)                420       
_________________________________________________________________
dense_146 (Dense)            (None, 20)                420       
_________________________________________________________________
dense_147 (Dense)            (None, 20)                420       
_________________________________________________________________
dense_148 (Dense)            (None, 20)                420       
_________________________________________________________________
dense_149 (Dense)            (None, 20)                420       
_________________________________________________________________
dense_150 (Dense)            (None, 20)                420       
_________________________________________________________________
**dense_151 (Dense)            (None, 2)                 42**        
=================================================================

总参数:2642 可培训参数:2642 不可训练参数:0

我考虑过了,但我不知道为什么会出现这个错误

梯度和康斯通损耗低于

def train(self, nIter): 
        start_time = time.time()
        self.optimizer=tf.keras.optimizers.Adam(learning_rate=1e-3)
        for it in range(nIter):
            
            lambda1=[self.lambda_1]
            lambda2=[self.lambda_2]
       
            trainable_variables=self.NN.NNmodel.trainable_variables+lambda1+lambda2
           
            with tf.GradientTape()as dgrad:
                dgrad.watch(trainable_variables)
                y=self.custom_loss()
            grads=dgrad.gradient(y,trainable_variables)
          
            self.optimizer.apply_gradients(zip(grads,trainable_variables))

def custom_loss(self):
        self.u_pred, self.v_pred, self.p_pred, self.f_u_pred, self.f_v_pred = self.function(self.x, self.y, self.t)

        loss=self.loss_calcul(self.u_tf,self.u_pred)+self.loss_calcul(self.v_tf,self.v_pred)+\
             self.loss_calcul(self.f_u_pred,0)+self.loss_calcul(self.f_v_pred,0)
        return loss

谢谢你的阅读


Tags: selfnone参数timetf错误variablesdense