结论:自定义层的时候不要在build里定义不会在call里调用的 trainable 变量

报错原文:

ValueError: An operation has `None` for gradient. Please make sure that all of your ops have a gradient defined (i.e. are differentiable). Common ops without gradient: K.argmax, K.round, K.eval.

引发操作:

model.fit(x, y, batch_size=32, epochs=2,validation_data=(x, y))

反正就是compile正常,fit报错

自定义层:

def build(self, input_shape):self.emb_A = self.add_weight(name='Embedding_1',shape=(self.sentence_size, self.vocab_size),initializer='uniform',trainable=True)self.emb_B = self.add_weight(name='Embedding_2',shape=(self.sentence_size, self.vocab_size),initializer='uniform',trainable=True)super(MemN2N, self).build(input_shape)def call(self, inputs):x = K.dot(inputs, self.emb_A)return K.sum(x, axis=2)

解决方法:

删除 self.emb_B就不会报这个错了

查了之后发现原因很简单,参考stackoverflow

就是build 里定义了call里没有使用的 trainable 变量,结果反向传播的时候就没办法计算它的梯度了。

我还找了半天看是不是因为K.sum()不可导orz

Keras 报错:An operation has `None` for gradient.相关推荐

  1. RedisTemplate报错WRONGTYPE Operation against a key holding the wrong kind of value

    场景 今天写业务代码,先从redis中读取值,不存在的话加redis锁,锁定之后再次尝试读取一次redis,没有值的话去db中读取并写redis缓存. 非常简单的代码,确报错WRONGTYPE Ope ...

  2. SVN报错“previous operation has not finished…“的解决办法

    SVN因多次操作卡死,报错"previous operation has not finished-", 无法进行任何新操作时,可以在SVN的工作目录下打开命令行窗口,输入&quo ...

  3. import keras 报错 ImportError: cannot import name ‘urlopen‘

    详细报错信息 packages\tensorflow\python\keras\_impl\keras\utils\data_utils.py", line 40, in <modul ...

  4. linux ping 报错 sendmsg: Operation not permitted

    故障排查: 早上突然收到nagios服务器check_icmp的报警,报警显示一台网站服务器的内网网络有问题.因为那台服务器挂载了内网的NFS,因此内网的网络就采用nagios的check_icmp来 ...

  5. 解决pip install keras报错问题

    yolo程序里报错 Using TensorFlow backend. Traceback (most recent call last): File "train.py", li ...

  6. vite打包报错EPERM: operation not permitted

    在网上找了很久都是说权限问题,其实这个问题跟权限没有任何关系,我在尝试各种加权限后终于自己找到了问题,在使用vite打包的时候,在vite.config文件里面有个publicDir: resolve ...

  7. keras学习- No module named ' tensorflow.keras ' 报错,看清 tf.keras与keras

    环境描述: 系统ubantu16.04 安装anaconda  版本conda 4.5.4 创建虚拟环境 tf-gpu tensorflow-gpu版本(1.7.0-gpu, 能够import ten ...

  8. keras报错:load_weights() got an unexpected keyword arguement 'skip_mmismatch'

    网上下载了一个Yolo(keras+tensorflow)网络的训练代码,在运行的时候,报了以下错误:load_weights() got an unexpected keyword arguemen ...

  9. Xcode运行报错The operation couldn’t be completed.

    有时候在调试app时,系统报警告 The operation couldn't be completed. Unable to launch com.foxconn.Demo4 because it ...

最新文章

  1. qpython3h手机版 写弹窗代码_Android Q之气泡弹窗的实现示例
  2. [Java] 初始化与清理
  3. IC/FPGA笔试/面试题分析(九)关于FIFO最小深度计算的问题
  4. 无图形界面下控制台操作Virtualbox
  5. PyCharm----快捷键
  6. java ee自学路线
  7. c++ 记忆化搜索_2010/12区间动态规划及记忆化搜索
  8. eclipse java main方法传参数
  9. 多线程的那点儿事(之C++锁)
  10. sql2012找不到到服务器,SQL Server无法连接到服务器怎么办
  11. Linux内核调优之Sysctl研究
  12. 与走在创业路上的学子交流——记网维“海大快点”创业团队
  13. JMS-activeMq点对点模式
  14. 设置linux中docker中的mysql开机自动启动
  15. 浅谈Java两种并发类型——计算密集型与IO密集型
  16. AntColony 磁力搜索BT引擎的核心
  17. pytube——下载YouTube视频的python库
  18. 直角坐标积分化为极坐标积分_将直角坐标系下的二次积分转换成极坐标系下的二次积分...
  19. 最短路径三大算法——1,弗洛伊德算法floyd(复杂度O(n^3))
  20. zkSNARKs(零知识证明)简述

热门文章

  1. 数据的格式化和处理(复习)
  2. python封装:隐藏对象中的属性或方法(三分钟读懂)
  3. 蓝桥杯java龟兔赛跑_蓝桥杯 1476: [蓝桥杯][基础练习VIP]龟兔赛跑预测
  4. python图片马赛克_Python实现PS滤镜中马赛克效果示例
  5. pandas 选择数据 字符串_读完本文,轻松玩转数据处理利器Pandas 1.0
  6. 数据结构 3-0 栈与队列总结
  7. PREV-55 小计算器 (进制转换)
  8. Activity之间的数据传递—实现Parcelable接口
  9. UML--行为图(状态图、活动图)
  10. CSDN Markdown 文本居中、右对齐、左对齐