tf2: Gradients do not exist for variables when minimizing the loss.

WARNING:tensorflow:Gradients do not exist for variables when minimizing the loss.

  • 情况一
    该变量没有参与最后loss的计算

    (1)如果直接没有参与计算,其实很好就能找出来,删掉无用变量即可;
    (2)有时直接参与计算了,但是由于程序中的 if 等条件语句,在某个batch的数据恰巧不适用某个变量,而其他batch可能就是使用了该变量,这种情况下,忽略该警告即可。

  • 情况二
    该变量在 model 的 call 之前就进行了运算,或者在 tf.GradientTape() 之外进行了运算,比如:concat,dense之类的都不行。

  • 情况三
    错误写法:
    创建一个变量或者常量,将计算出的结果一行一行 assign 进去
    修改后的写法:
    创建一个空 list,每次将计算出的结果 append 加入,最后使用 tf.stack() 操作

import tensorflow as tfoptimizer = tf.keras.optimizers.Adam(learning_rate=0.001)
w1 = tf.Variable([[1.0]])
w2 = tf.Variable([[3.0]])w = tf.concat([w1, w2], 0)  # 变量在tf.GradientTape()范围之外就进行了计算x = tf.random.normal((1,2))
y = tf.reduce_sum(x,1)
with tf.GradientTape() as tape:# w = tf.concat([w1, w2], 0)  # 这里使用就不会报错了r = tf.matmul(w,x)loss = tf.metrics.mse(y, r)gradients = tape.gradient(loss, [w1,w2])print(gradients)  # [None, None]optimizer.apply_gradients(zip(gradients, [w1,w2]))  # 没有梯度,这行就会报错

最后:这类型问题百度没什么解答,github上讨论的人很多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 654. 最大二叉树(递归)

文章目录1. 题目2. 解题1. 题目 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素。 左子树是通过数组中最大值左边部分构造出的最大二叉树。 右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给…

Probe:Android线上OOM问题定位组件

配送骑手端App是骑手用于完成配送履约的应用,帮助骑手完成接单、到店、取货及送达,提供各种不同的运力服务,也是整个外卖闭环中的重要节点。由于配送业务的特性,骑手App对于应用稳定性的要求非常高,体现App稳定性的一个…

Android中使用官方提供好的功能使用说明(比如系统图库获取),也作为延生学习的学习文档

这篇文章最核心的就是去学习如何学习Android,如何去使用Android文档。 我们一般在刚开始接触开发的时候,如果遇到无法解决的问题,常常会百度,或者google去寻找答案,比如有个需求是获取系统中的图片,你可能…

再介绍一篇Contrastive Self-supervised Learning综述论文

文 | 黄浴源 | 知乎之前已经介绍过三篇自监督学习的综述:《怎样缓解灾难性遗忘?持续学习最新综述三篇!》。这是最近2020年10月arXiv上的又一篇论文"A Survey On Contrastive Self-supervised Learning"。论文地址:https…

GCN-Based User Representation Learning for Unifying Robust Recommendation and Fraudster Detection

GCN-Based User Representation Learning for Unifying Robust Recommendation and Fraudster Detection 点击率预测:其主要思想是根据用户的历史行为对一组未评级的项目进行评级预测,然后从预测评级最高的项目中选择个性化推荐。 欺诈检测:…

公开课 | 知识图谱构建与应用概述

本文转载自公众号:博文视点Broadview。 AI是新的生产力,知识图谱是AI进步的阶梯。随着近年来人工智能的进一步发展,知识图谱也取得了一系列新的进展,并在各个行业中落地应用。知识图谱的相关技术已经在搜索引擎、智能问答、…

python中mysql更新字段中传参问题

更新表 可以使用“UPDATE”语句,更新表格内的现有记录: 示例 将地址栏由“Valley 345”改写为“Canyoun 123”: import mysql.connectormydb mysql.connector.connect(host"localhost",user"你的用户名",passwd"你的密码",databa…

LeetCode 217. 存在重复元素(哈希)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1:输入: [1,2,3,1] 输出: true 示例 2:输入: [1,2,3,4] 输出:…

美团BERT的探索和实践

2018年,自然语言处理(Natural Language Processing,NLP)领域最激动人心的进展莫过于预训练语言模型,包括基于RNN的ELMo[1]和ULMFiT[2],基于Transformer[3]的OpenAI GPT[4]及Google BERT[5]等。下图1回顾了近…

解决AndroidStudio添加ProjectLibary后在编译时遇到的各种问题之解决方式索引(finished with non-zero exit value and so on...)

解决AndroidStudio添加ProjectLibary后在编译时遇到的各种问题之解决方式索引(finished with non-zero exit value and so on...)因为项目需要,我需要将一个外部工程作为Libary导入项目,起初导入还是比较简单的,但是在编译的时候就遇到了各种…

论文浅尝 | 探索将预训练语言模型用于事件抽取和事件生成

论文笔记整理:郝凯龙,南京大学硕士链接:https://www.aclweb.org/anthology/P19-1522.pdf动机传统的 ACE 事件抽取任务依赖于人工标注的数据,耗费大量的人力并且数据量有限,数据量不足给事件抽取带来了阻碍。传统的事件…

谷歌、CMU发文:别压榨单模型了!集成+级联上分效率更高!

文 | Sherry 不是小哀集成模型(Ensemble)可以提升模型的精度,但往往面临提升计算量的困境,用级联模型(Cascade)在预测时提前中断则可解决计算量的问题。最近,谷歌和CMU的研究者对此进行了深入的…

Linux-Centos 安装Anaconda(2021)

安装步骤 1、下载Anaconda到本地 Anaconda3-5.3.1-Linux-x86_64.sh2、上传本地 Anaconda 文件到 linux 服务器 rz # 打开笔记本方式上传3、安装 bash Anaconda3-5.3.1-Linux-x86_64.sh4、检查是否安装成功 conda info --envs配置步骤 如果没有安装成功,需要…

大数据技术和python开发工程师

一:大数据技术 简单来说,从大数据的生命周期来看,无外乎四个方面:大数据采集、大数据预处理、大数据存储、大数据分析,共同组成了大数据生命周期里最核心的技术,下面分开来说:一、大数据采集大数…

LeetCode 219. 存在重复元素 II(哈希)

文章目录1. 题目2. 解题1. 题目 给定数组nums和常数k&#xff0c;存在不同的i、j使得nums[i] nums[j]&#xff0c;且abs(i-j) < k。 输入: nums [1,2,3,1], k 3 输出: true 示例 2:输入: nums [1,0,1,1], k 1 输出: true 示例 3:输入: nums [1,2,3,1,2,3], k 2 输出…

记录对String.format(Formatter().format())方法的总结

String.format其实是调用的Formatter.format&#xff1a; public static String format(String format, Object... args) {return new Formatter().format(format, args).toString();}第一个参数是格式化字符串&#xff0c;第二个参数是可变的被格式化的参数。 我们主要看的是格…

Android静态代码扫描效率优化与实践

背景与问题 DevOps实践中&#xff0c;我们在CI(Continuous Integration)持续集成过程主要包含了代码提交、静态检测、单元测试、编译打包环节。其中静态代码检测可以在编码规范&#xff0c;代码缺陷&#xff0c;性能等问题上提前预知&#xff0c;从而保证项目的交付质量。Andro…

还在用[CLS]?从BERT得到最强句子Embedding的打开方式!

文&#xff1a;涅生编&#xff1a;兔子酱你有尝试从 BERT 提取编码后的 sentence embedding 吗&#xff1f;很多小伙伴的第一反应是&#xff1a;不就是直接取顶层的[CLS] token的embedding作为句子表示嘛&#xff0c;难道还有其他套路不成&#xff1f;nono&#xff0c;你知道这…

论文浅尝 | BERT:Pre-training of Deep Bidirectional Transformers

论文笔记整理&#xff1a;王春培&#xff0c;天津大学硕士。链接&#xff1a;https://arxiv.org/pdf/1810.04805.pdf动机将预训练语言表示应用于下有任务现有两种策略&#xff1a;基于特征的和基于微调的。文章认为当前技术限制了预训练的能力&#xff0c;尤其是基于微调的方法…

欺诈检测相关论文

欺诈检测相关论文一、分类1、GEM2、HACUD3、MAHINDER4、Semi-GNN5、MvMoE6、AMG-DP7、AddGraph8、NetWalk9、DOMINANT10、GraphConsis11、PC-GNN12、TRUST二、类别不平衡一、分类 1、GEM 来自蚂蚁金服的论文&#xff0c;他们提出GEM模型&#xff0c;是一个异质图神经网络方法&a…