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

问题描述

我的错误在这里

enter image description here

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

有关“dense_151/bias:0”的信息在这里。 (模型.摘要())

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**        
=================================================================

总参数:2,642 可训练参数:2,642 不可训练的参数: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

感谢您的阅读。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)