KeyError:“ gradients_3 / dgm_net_2 / Relu_5_grad / ReluGrad”

如何解决KeyError:“ gradients_3 / dgm_net_2 / Relu_5_grad / ReluGrad”

KeyError                                  Traceback (most recent call last)

<ipython-input-47-dbe0ddf23b1b> in <module>()
     25           learning_rate = tf.compat.v1.train.exponential_decay(starter_learning_rate,global_step,26                                             100000,0.96,staircase=True)
---> 27           optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate=learning_rate).minimize(loss_t)
     28 
     29           # Training parameters

9 frames

/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/ops.py in _get_operation_by_name_unsafe(self,name)
   3819 
   3820     with self._lock:
-> 3821       return self._nodes_by_name[name]
   3822 
   3823   def _get_operation_by_tf_operation(self,tf_oper):

KeyError: 'gradients_3/dgm_net_2/Relu_5_grad/ReluGrad'


初始化模型时出现此KeyError错误。更具体地说,优化器:

          global_step = tf.Variable(decay,trainable=False)#0 for constant decay,1 for exponential decay
          learning_rate = tf.compat.v1.train.exponential_decay(starter_learning_rate,100000,staircase=True)
          optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate=learning_rate).minimize(loss_t)

下面是我使用ReLU激活功能的网络体系结构:

class DGMNet(tf.keras.Model):
    
    def __init__(self,n_layers,n_nodes,dimensions=1):
        """
        Parameters:
            - n_layers:     number of layers
            - n_nodes:      number of nodes in (inner) layers
            - dimensions:   number of spacial dimensions
        """
        super().__init__()
        
        self.n_layers = n_layers

        self.initial_layer = DenseLayer(dimensions + 1,activation="relu")
        self.lstmlikelist = []
        for _ in range(self.n_layers):
            self.lstmlikelist.append(LSTMLikeLayer(dimensions + 1,activation="relu"))
        self.final_layer = DenseLayer(n_nodes,1,activation=None)


    def call(self,t,x):
        X = tf.concat([t,x],1)

        S = self.initial_layer.call(X)
        for i in range(self.n_layers):
            S = self.lstmlikelist[i].call({'S': S,'X': X})
        result = self.final_layer.call(S)

        return result
    


# Neural network layers

class DenseLayer(tf.keras.layers.Layer):
        

  def __init__(self,n_inputs,n_outputs,activation):
      """
      Parameters:
      - n_inputs:     number of inputs
      - n_outputs:    number of outputs
      - activation:   activation function
      """
      super(DenseLayer,self).__init__()
      self.n_inputs = n_inputs
      self.n_outputs = n_outputs
      self.W = self.add_weight(shape=(self.n_inputs,self.n_outputs),initializer='random_normal',trainable=True)
      self.b = self.add_weight(shape=(1,trainable=True)
      self.activation = _get_function(activation)
      
  def call(self,inputs):
        S = tf.add(tf.matmul(inputs,self.W),self.b)
        S = self.activation(S)

        return S



class LSTMLikeLayer(tf.keras.layers.Layer):
    def __init__(self,activation):
        """
        Parameters:
            - n_inputs:     number of inputs
            - n_outputs:    number of outputs
            - activation:   activation function
        """
      
        super(LSTMLikeLayer,self).__init__()

        self.n_outputs = n_outputs
        self.n_inputs = n_inputs


        
        
        self.Uz = self.add_weight("Uz",shape=[self.n_inputs,self.n_outputs])
        self.Ug = self.add_weight("Ug",self.n_outputs])
        self.Ur = self.add_weight("Ur",self.n_outputs])
        self.Uh = self.add_weight("Uh",self.n_outputs])
        self.Wz = self.add_weight("Wz",shape=[self.n_outputs,self.n_outputs])
        self.Wg = self.add_weight("Wg",self.n_outputs])
        self.Wr = self.add_weight("Wr",self.n_outputs])
        self.Wh = self.add_weight("Wh",self.n_outputs])
        self.bz = self.add_weight("bz",shape=[1,self.n_outputs])
        self.bg = self.add_weight("bg",self.n_outputs])
        self.br = self.add_weight("br",self.n_outputs])
        self.bh = self.add_weight("bh",self.n_outputs])
        

        self.activation = _get_function(activation)


    
    def call(self,inputs):
        S = inputs['S']
        X = inputs['X']

        Z = self.activation(tf.add(tf.add(tf.matmul(X,self.Uz),tf.matmul(S,self.Wz)),self.bz))
        G = self.activation(tf.add(tf.add(tf.matmul(X,self.Ug),self.Wg)),self.bg))
        R = self.activation(tf.add(tf.add(tf.matmul(X,self.Ur),self.Wr)),self.br))
        H = self.activation(tf.add(tf.add(tf.matmul(X,self.Uh),tf.matmul(tf.multiply(S,R),self.Wh)),self.bh))
        Snew = tf.add(tf.multiply(tf.subtract(tf.ones_like(G),G),H),tf.multiply(Z,S))

        return Snew



def _get_function(name):
    f = None
    if name == "tanh":
        f = tf.nn.tanh
    elif name == "sigmoid":
        f = tf.nn.sigmoid
    elif name == "relu":
        f = tf.nn.relu
    elif not name:
        f = tf.identity
    
    assert f is not None
    
    return f

loss_t来自

 ann = DGMNet(num_layers,nodes_per_layer)
          
          
          L1_t,L2_t,L3_t = loss(ann,t1_t,x1_t,t2_t,x2_t,t3_t,x3_t)
          loss_t = L1_t  + L2_t + L3_t

其中损失函数定义为。

def loss(model,t1,x1,t2,x2,t3,x3):
    # Loss term #1: PDE
    V = model(t1,x1)
    V_t = tf.gradients(V,t1)[0]
    V_x = tf.gradients(V,x1)[0]
    V_xx = tf.gradients(V_x,x1)[0]
    f = V_t + r*x1*V_x + 0.5*sigma**2*x1**2*V_xx - r*V 

    L1 = tf.reduce_mean(tf.square(f))

    #Loss term #2: boundary condition
    L2 = tf.reduce_mean(tf.square(model(t2,x2) - 0)) 
    
    # Loss term #3: initial/terminal condition
    L3 = tf.reduce_mean(tf.square(model(t3,x3) - tf.math.maximum(x3-K,0)))

    return (L1,L2,L3)

因此优化器似乎存在问题。昨天它仍然有效,我什么也没改变。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-