渐变剪切似乎在“无”上窒息

2024-02-25

我正在尝试向我的图表添加渐变裁剪。我使用了这里推荐的方法:如何在tensorflow中有效应用梯度裁剪? https://stackoverflow.com/questions/36498127/how-to-effectively-apply-gradient-clipping-in-tensor-flow

    optimizer = tf.train.GradientDescentOptimizer(learning_rate)
    if gradient_clipping:
        gradients = optimizer.compute_gradients(loss)
        clipped_gradients = [(tf.clip_by_value(grad, -1, 1), var) for grad, var in gradients]
        opt = optimizer.apply_gradients(clipped_gradients, global_step=global_step)
    else:
        opt = optimizer.minimize(loss, global_step=global_step)

但是当我打开渐变裁剪时,我得到以下堆栈跟踪:

<ipython-input-19-be0dcc63725e> in <listcomp>(.0)
     61         if gradient_clipping:
     62             gradients = optimizer.compute_gradients(loss)
---> 63             clipped_gradients = [(tf.clip_by_value(grad, -1., 1.), var) for grad, var in gradients]
     64             opt = optimizer.apply_gradients(clipped_gradients, global_step=global_step)
     65         else:

/home/armence/mlsandbox/venv/lib/python3.4/site-packages/tensorflow/python/ops/clip_ops.py in clip_by_value(t, clip_value_min, clip_value_max, name)
     51   with ops.op_scope([t, clip_value_min, clip_value_max], name,
     52                    "clip_by_value") as name:
---> 53     t = ops.convert_to_tensor(t, name="t")
     54 
     55     # Go through list of tensors, for each value in each tensor clip

/home/armence/mlsandbox/venv/lib/python3.4/site-packages/tensorflow/python/framework/ops.py in convert_to_tensor(value, dtype, name, as_ref)
    619     for base_type, conversion_func in funcs_at_priority:
    620       if isinstance(value, base_type):
--> 621         ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
    622         if ret is NotImplemented:
    623           continue

/home/armence/mlsandbox/venv/lib/python3.4/site-packages/tensorflow/python/framework/constant_op.py in _constant_tensor_conversion_function(v, dtype, name, as_ref)
    178                                          as_ref=False):
    179   _ = as_ref
--> 180   return constant(v, dtype=dtype, name=name)
    181 
    182 

/home/armence/mlsandbox/venv/lib/python3.4/site-packages/tensorflow/python/framework/constant_op.py in constant(value, dtype, shape, name)
    161   tensor_value = attr_value_pb2.AttrValue()
    162   tensor_value.tensor.CopyFrom(
--> 163       tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape))
    164   dtype_value = attr_value_pb2.AttrValue(type=tensor_value.tensor.dtype)
    165   const_tensor = g.create_op(

/home/armence/mlsandbox/venv/lib/python3.4/site-packages/tensorflow/python/framework/tensor_util.py in make_tensor_proto(values, dtype, shape)
    344   else:
    345     if values is None:
--> 346       raise ValueError("None values not supported.")
    347     # if dtype is provided, forces numpy array to be the type
    348     # provided if possible.

ValueError: None values not supported.

我该如何解决这个问题?


因此,似乎有效的一种选择是:

    optimizer = tf.train.GradientDescentOptimizer(learning_rate)
    if gradient_clipping:
        gradients = optimizer.compute_gradients(loss)

        def ClipIfNotNone(grad):
            if grad is None:
                return grad
            return tf.clip_by_value(grad, -1, 1)
        clipped_gradients = [(ClipIfNotNone(grad), var) for grad, var in gradients]
        opt = optimizer.apply_gradients(clipped_gradients, global_step=global_step)
    else:
        opt = optimizer.minimize(loss, global_step=global_step)

当梯度为零张量并且 tf.clip_by_value 不支持 None 值时,compute_gradients 看起来会返回 None 而不是零张量。因此,不要将 None 传递给它并保留 None 值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

渐变剪切似乎在“无”上窒息 的相关文章

随机推荐

  • 在 C# < 4 中,如何根据参数的运行时类型分派到方法?

    我有一个对象o在运行时保证是三种类型之一A B or C 所有这些都实现了一个通用接口I 我可以控制I 但不是A B or C 因此 我可以使用空标记接口 或者以某种方式通过使用接口来利用类型中的相似性 但我无法添加新方法或更改类型中的现有
  • ash 文件的结构如何?

    我有一个使用 ash 的小型发行版 不是 busybox 我不确定如何处理点文件结构 ashrc 似乎没有被拾取 我也没有看到 bash profile 类似物 shell启动文件有默认约定吗 手册页的调用部分对此进行了介绍 profile
  • 数据字段中包含 SSD AID 的删除 APDU 命令,返回 6985

    我有一个包含 SSD 补充安全域 的 Javacard 我想删除它 通常 当我想从卡中删除小程序或包时 我会发送以下内容删除 APDU成功后命令相互认证过程 不需要 MAC 或数据字段加密 并且Security Level 0就足够了删除
  • 如何测试具有私有方法、字段或内部类的类?

    如何使用 JUnit 测试具有内部私有方法 字段或嵌套类的类 为了能够运行测试而更改方法的访问修饰符似乎很糟糕 如果你有一些遗产Java应用程序 并且您不允许更改方法的可见性 测试私有方法的最佳方法是使用反射 http en wikiped
  • UIToolBar 中的 UISegmentedControl

    我知道如何添加UISegmentedControl to a UIToolBar来自 IB 内部 但我尝试以编程方式执行相同的操作 因为我正在使用 的自定义子类UISegmentedControlwith 没有 XIB 这是代码UISegm
  • Haskell 中 ++ 和 : 有什么区别?

    我不明白这个 Prelude gt hi there hithere Prelude gt hi there
  • python循环创建我知道它很简单但我不知道出了什么问题[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 python 新手尝试创建 while 循环来打印 1 到 10 而不仅仅是 10 I 0 while I 10 I 1 prin
  • 需要帮助在 Python 中添加循环来重新启动程序

    到目前为止 这就是我所得到的 import random answer1 Absolutely answer2 No way Pedro answer3 Go for it tiger answer4 There s different w
  • ASP.NET MVC 样式验证错误?

    ASP NET MVC 的验证错误可以设置样式吗 在哪里 我尝试在 Site css 中编辑 input validation error 类 但这没有任何效果 pom 如果你的风格 field validation error那么这将更改
  • IL 中的 if 是什么样的?

    一个是什么意思if语句编译成 IL 后是什么样子 这是 C 中非常简单的构造 有人能给我一个更抽象的定义吗 这里有一些if语句以及它们如何转换为 IL ldc i4 s 0x2f var i 47 stloc 0 ldloc 0 if i
  • 如何将录制的视频保存到相册中?

    以下代码是将相机拍摄的图像保存到相册中 if mediaType isEqualToString NSString kUTTypeImage image info objectForKey UIImagePickerControllerEd
  • 为什么 Kotlin lang 只允许项目中只有一个 main 函数?

    这是否剥夺了 java 中具有多个主入口点的特性 这些入口点可以在需要时调用 UPDATE Kotlin 的最新版本允许多个main即使在同一个包中也可以运行 如果它们位于不同的文件中 项目中可以有多个主函数 但每个主函数只能有一个pack
  • 纯 CSS 使字体大小根据动态字符数量进行响应

    我知道用 Javascript 可以很容易地解决这个问题 但我只对纯 CSS 解决方案感兴趣 我想要一种动态调整文本大小的方法 以便它始终适合固定的 div 这是示例标记 div style width 200px height 1em p
  • JavaScript 跨浏览器:将字符串视为数组是否安全?

    这段代码在所有主流浏览器中都安全吗 var string 123 alert string 1 2 should alert true 不 这不安全 Internet Explorer 7 不支持按索引访问字符串 你必须使用charAt兼容
  • 如何在 swiftui 中添加自定义圆形滑动操作?

    在我的 SwiftUI 应用程序中 我想在 ListView 中设计圆形滑动操作 如以下示例所示 天气应用程序 iOS 15 我知道您可以添加这样的自定义操作 List Text Pepperoni pizza swipeActions B
  • PHP 或 MySQL 中的业务逻辑?

    在具有合理流量的网站上 如果将应用程序 业务逻辑编写为存储过程 触发器和视图 而不是编写在 PHP 代码本身中 这会重要吗 牢记可扩展性的最佳方法是什么 我无法向您提供统计数据 但除非您计划将来将 PHP 更改为另一种语言 否则我可以说将业
  • 使用 graph api 2.2 从 android 中的 facebook sdk 4.0.1 获取好友列表

    我在进行一些搜索后用于获取列表的代码如下 GraphRequestBatch batch new GraphRequestBatch GraphRequest newMyFriendsRequest accessToken new Grap
  • pg_dump 忽略表顺序?

    我最近一直在玩 PostgreSQL 并且无法理解如何备份和恢复单个表 我使用 pgadmin3 备份数据库中的单个表 以便将其复制到不同的服务器 当我尝试对文件执行 pg restore 时 收到错误消息 指出该序列不存在 pg rest
  • XmlHttpRequest.onload 未调用

    我正在玩这个XmlHttpRequest事物 在一些教程和书籍中 它是onload请求完成时调用的函数 在我的小实验中 这个函数从未被调用 这是我的代码 window onload function var url http www goo
  • 渐变剪切似乎在“无”上窒息

    我正在尝试向我的图表添加渐变裁剪 我使用了这里推荐的方法 如何在tensorflow中有效应用梯度裁剪 https stackoverflow com questions 36498127 how to effectively apply